A lot of work on GUI

I have fixed some stuff and added some more new stuff. All in all the GUI code is quickly closing the feature gap with command line.
Uh oh, we've just changed behaviour here. Given that we've documented `null` as meaning "that module exists, but not for your version of KSP", and an exception is thrown when we're asked for a module that doesn't exist at all (which really *does* indicate that something is wrong), I'm not sure we want to change behaviour.