Allow REPL command aliasing

Fixes #730

You can now do:
`:alias "install" "i"`

In this case the new command is `:i` and you can use it as you would `:install`. Aliasing is implemented as another REPL command too.

This can obviously wait for the merge until the DEV branch accepts PRs again. 
Do we want people to be able to redefine aliases in a single REPL session? If so, we can use the indexer to set the value here, instead of calling `Add()`. Currently if someone tries to do that I guess they'll get an exception telling them the key already exists. Would the REPL session survive that or would it be killed?