Refactor repo urls to allow specification of independent urls for each component.

This is mainly useful for internal testing. The goal was to diverge as little as possible from the standard code path when using override urls.