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.
Aren't these entries supposed to be in alphabetical order? At least that was my impression when I first looked at the file.