repo-updater: Cancel current sync if we modify external services
Created by: keegancsmith
This commit will cancel the context of the current sync when the "syncSignal" is triggered.
Previously we triggered a new sync to run if an external service is mutated/added/deleted. It would wait until the current sync is complete and then instantly start a new one instead of waiting our periodic interval.
This lead to confusing behaviour since repo-updater would be making changes which did not reflect the current set of external services. A concrete example is adding an external service then shortly removing it. repo-updater would continue to stream in the deleted external service repos until it was done, and then only delete them all.
Test plan: e2e tests
Fixes https://github.com/sourcegraph/sourcegraph/issues/6058