Add `ConfigResource` interface

This is a first step for providing replication configuration from an
external source. The `ConfigResource` bundles together JGit `Config`
instance with its version.

The future implementations can read the configuration from a Gerrit
project or external systems like ZooKeeper.

The idea here is to separate the configuration resource from
configuration options. This way it is easier to manage the configruation
externally and also provide layers of configuration like "git config"
command does.

On top of the `ConfigResource` we sill use the `ReplicationConfig` and
`ReplicationFileBasedConfig` to access plugin configuraiton options. The
auto-reloading mechanism is also reused.

Change-Id: I77d205dce223e508bf4a06c5ff9da91444a87032
5 files changed
tree: 2eec6fc0353f51d339aacccd2db081699028ec32
  1. .settings/
  2. src/
  3. .gitignore
  4. .mailmap
  5. BUILD
  6. LICENSE