Run `git remote prune origin` before fetching

This helps solve branch name collisions that git can't fix during `git fetch`.

This is an alternate solution for #78, as compared to #79, that won't destroy the cache when a git communication failure prevents checkout.