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.
An is method seems like a good alternative, but I've already finished the config changes using `get` so I'll stick with that for now. We can always change to an is method later if you like.

I haven't merged the changes yet because I'm testing them now, but they'll be in soon.