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.
If these re the default, then we probably want `with_recommends` to be true if we're going by the spec. (But as mentioned elsewhere, we should just factor this out in a subroutine that gives us the options we need.)