Implementation of new config system

This is a working but not-yet-complete implementation of a new config system. It should be simpler, more reliable and make HearthStats Companion easier to unit test.

So far I've moved all the notification settings, window settings and monitoring method setting to the new configuration. Other settings remain in the old config system, and will be moved shortly. It should be safe to accept this pull request now if you want it urgently, but it would probably be better to wait until I've moved all the config over.
I'm a bit scared to override equals here ... I think it's safer to user .get, or to add a method is(T) in the ConfigValue class, so we can write 
```config.monitoringMethod is MonitoringMethod.SCREEN_LOG```