gitserver: Factor out vcsDependenciesSyncer
Created by: tsenart
Context
This commit factors out the common bits between all existing dependencies syncers into a vcsDependenciesSyncer type.
This will make introducing new ones quicker and less error prone (i.e. Python)
Fixes #33103 (closed)
Test plan
Unit, integration and manual tests.