Overhaul git updating

* Use fetch instead of pull, so we don't get conflicts
* Only check out in target, not cache
* Clean up support for branches/revisions
Only print source cache directory once
Use git mirrors for caches
Checkout correct git branch
Store org info in cache filename.
Make sure the workspace caches are up to date.
Merge branch 'git-mirrors'