Initial refactoring of Main into OS-specific implementations

As part of a general cleanup, I'm moving the startup of each application to its own class -- ie Windows now uses HearthStatsWin instead of Main, Mac OS X now uses HearthStatsOsx instead of Main. There's still more to do, this is just the start.
Further refactoring into environment class
minor refactoring / code review
Merge branch 'gtch-clean-main'