Add Launch.Connect command and on-connect mod switching.

This cleans up some of the early startup code, restores support for connecting to a server from the commandline, and adds support for switching mods when connecting to a server.  Closes #4521 and implements the majority of #7058.

I have restricted this to just the back end changes: I have a second PR that makes all mod's games available in the server browser, and #4528 will add the front end for replays under Linux.
That's why I generally edit it using vim. MD notices within seconds that the file has changed and reloads the projects, so it works just as well.