Choose mirrors more intelligently.

- Allow mirror affinity to be defined using `spanmirrors`
- Keep track of how many threads are downloading from each mirror on a per-
  repository basis to allow us to distribute the load over multiple fast
  mirrors