Everything now happens in main.ts, in the bootstrap family of
functions. The current flow is:
* check everything only on extension installation.
* if the user is on nightly channel, try to download the nightly
extension and reload.
* when we install nightly extension, we persist its release id, so
that we can check if the current release is different.
* if server binary was not downloaded by the current version of the
extension, redownload it (we persist the version of ext that
downloaded the server).
There are too many of them, and they no longer match the set of crates
we have.
This really should be handled in a different way, by having out
"rust-analyzer: Run" generate the appropriate lldb config on the fly.