CLI:
- Add a darklang update command to manually update the CLI
- Add bash and zsh modules to the Cli package
- Add some Cli stdlib functions for getting the runtime host and shell
Running the self-update manually runs the update twice (because currently we run the self update with every command)
Edit : ^fixed
When a new version of the cli is installed we are not removing the old version; should we remove it? if so, I think we need to save the previous version's hash in the config file wdyt?
Changelog:
This PR refactors the cli's self update code