Dependency loading and installation revamp

Here's an implementation I hacked together for 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? What about making `CommandFactory` return an `IEnumerable<ICommand>` in the correct order. That way I could remove `InstallCommand`'s inheritance from `RestoreCommand`.

Feel free to provide feedback :smiley: