Only run a single repo_sync job at a time

It's currently possible trigger multiple calls to `/repo_syncs`
from the UI, by clicking the refresh link multiple times, or
reloading the page near the start of a sync.

This change ensures that `/repo_syncs` will not enqueue multiple
synchronization jobs at a time.
It's used by `before_enqueue`, whose true/false return value determines whether the job should be enqueued.