Moved Config to a top level interface and renamed it ConfigSource.
Split most of the default logic out of PropertiesConfig into a new AbstractConfigSource to make impling ConfigSource easier.