batches: Refactor changeset syncer
Created by: eseliger
This PR refactors the changeset syncer to get it a step closer to being able to run outside of repo-updater.
- Removes the hook based syncer startup/shutdown in favor of polling the database for a list of code hosts every once in a while
- Removes global initialization of metrics
- Makes SyncRegistry fulfil the goroutine.BackgroundRoutine interface
- Migrates to go-mockgen in the syncer tests, it's simple to use and made it easier for me to fix the tests