add Gitter chat badge
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'
Moved newNotificationQueue to Environment to avoid using reflection
Merge pull request #446 from gtch/clean-main

Moved newNotificationQueue to Environment to avoid using reflection
Reduced memory usage, especially on Windows 8

Reintroduced the forced garbage collection to fix out-of-control memory usage on Windows 8. Every three seconds the monitor loop will now run a garbage collection instead of sleeping the thread. This has the effect of preventing the memory usage from compounding over time... without this forced GC it was common to see Windows allocating all available system memory to the uploader after a period of time, even though the number and size of Java objects was small and fairly constant. It's not apparent why forcing the GC is necessary but on my test Windows 8.1 it does seem to have completely fixed the problem.

See #343 and #380 for more details. This should fix the various problems people have reported with memory usage such as #279, #281, #305, #330, #354, #428, #433, but I will test some more to make sure before releasing.