Implement periodic fetch for source

When `remote.NAME.fetchEvery` is configured to value greater than `0`
for a source then all its projects are fetched using a dedicated (called
`PeriodicallyFetchFromSources`) pool (with a single thread).

Notes:
* dedicated pool is created only when at least single resource is
  configured to fetch periodically from the remote
* the check is performed on pull-replication plugin start therefore
  plugin should be restarted in case when configuration is modified
* all refs (according to `remote.NAME.fetch` spec) are fetched for each
  repository

Bug: Issue 322146240
Change-Id: I4ff6ca67ec4005710c28f6b9cee08d584da03936
7 files changed
tree: dc9bfcc94a96df4158a435dfc7996b2e1fa82b7a
  1. example-setup/
  2. src/
  3. .gitignore
  4. BUILD
  5. Jenkinsfile
  6. LICENSE