GUI Upgrades, now with choices all together!

This is #473, but I've adjusted the code so that we do all the installing/removing together, as opposed to removes and upgrades first, then relationship resolution, and then installs at the end.

@AlexanderDzhoganov, I'd love you to look over this and merge if you're happy. My change to your code is 445642d, and merging this will also close #473 as merged.

Many thanks!

~ Paul