Don't mock the config in tests

This adds a constructor to `Config` that accept a `Map<String,String>` with overrides and converts most tests to not mock the config object. The remaining mocks can be found by searching for `mock(Config.class)`. The places where it is still mocked contains tests that are already failing and are otherwise currently hard to convert.