check for null because clients may be gone already

fixes #3694
load mods on double-click

closes #3166
use stream reader extensions for loading ra/cnc Terrain
StyleCop clean Map/*.cs files
Close game interface before showing crash form and don't show it at all on dedicated servers.
use StreamExts for LegacyMapImporter
Merge pull request #3744 from Mailaender/tileset-stream-exts

Ported Terrain parser to StreamReader extensions
Merge pull request #3738 from Mailaender/fast-mod-switch

Wired up OnDoubleClick for the ModBrowser.
Merge pull request #3695 from Mailaender/team-no-nre

Don't crash C&C ingame menu after player drop
Split HackyAI into a more manageable set of files.
Initial HackyAI cleanup pass.
Make a bit more sense of FindAndDeployMcv.
Initial cleanup of fuzzy logic.
Initial cleanup of BaseBuilder.
Initial cleanup of Squad.
Rename IState interface method names.
Change Squad.IsEmpty -> IsValid.
Initial cleanup of StateBase.
Remove explicit List<Actors> everywhere.
Add IEnumerable<WPos>.Average overload.