Feature: Config Updates

This branch adds a lot more stability and flexibility around the configuration system, with a default config, file overriding and unit tests.