Implement a config system

- [x] ConfigSource
- [x] ConfigFileSource
- [x] ConfigDefaultSource
- [x] ConfigGlobalSource
- [x] ConfigProjectSource
- [x] ConfigCmdArgsSource
- [x] ConfigCommentSource
- [x] ConfigContainer
- [x] Refactor Linter to decrease `__init__` arguments (for decreasing dependency)
- [x] Add integration tests for Linter and the Config mechanisms