ENH git source cache: Support fetching entire remote repo

By using ls-remote --heads, and then fetching each one in turn...