Dependency loading and installation revamp

Here's an implementation of the new `-install` and `-restore` logic according to #141 and #143. Sorry for the messy PR, but this issue is touching quite a lot of `ScriptCs.Core`...

The `-restore` command isn't running any scripts though. How would you like that to be implemented? I could change `CommandFactory` to return an `IEnumerable<ICommand>` in the correct order. That way I could remove `InstallCommand`'s inheritance from `RestoreCommand`.

Feel free to provide feedback :smiley: