Multi-instance support

Only works in the GUI for now, doesn't break  the command-line client but the new options are not implemented.

Related to #29 
So... if we have no modules cached, and no modules not cached, that means... we're installing no modules and hence we do a roll-back? Under what circumstances would we encounter that? When `ModList` is empty, which I don't think can happen unless `modules` is empty...

So wouldn't be be better of testing one of those variables earlier on, and signalling appropriately if they're empty?

It's late and I'm low on sleep, so I may be missing something here, but that's a typical state for developers, so if it's confusing me now it'll almost certainly confuse someone else (possibly future me) later on.