Support running toolchains side-by-side
`choosenim` currently supports only one toolchain at a time, using global state - this means it's hard to test two toolchains at a time - it also causes issues like cache sharing between different nim versions which leads to a sub-par experience (specially given Nim's poor handling of cache dirs in general, where it's common clearing the cache helps solve compile problems).

As an alternate approach, it would be nice if choosenim could work on a per-shell basis, for example by modifying `$PATH` to point to a specific environment, akin to how python handles `venv` - this environment would not only contain nim itself, but also the nimble dir, allowing it to be fully isolated from other development - this way, it becomes possible to work on two projects side-by-side and not worry about the dependencies of one project messing up the dependencies of the other.

ping @zah who has talked about something similar, leveraging the Nix package manager