Map chooser polish & refactoring

These changes add some much needed polish to the map chooser in C&C, and removes some of the issues associated with the map chooser logic.

The map list is now generated synchronously, but the previews generation is async within the MapPreviewWidget.