Prepare for general VCS support.

This requires us to use VCS-specific URL schemes so we can tell which
VCS to use to check out or update a given repository.