Initial work on GUI + some core changes

This is what I've managed to do today, it's pretty stable with minor quirks. All basic features should work using the GUI. Read the commit descriptions for details.
Sorry if I've messed up any formatting, I will clean it up later :)

We probably want `with_all_suggests` to be false, otherwise we end up with the kitchen sink. (RealismOverhaul ends up *suggesting* about 20 mods, and they have suggestions too!) But realistically, I should have something which returns the *default* resolver options, so we're not setting them in each front-end.