Support retries and timeouts in directory download code
- Time out directory requests that take too long
- Retry requests for directories that we can't fetch.
- Abandon circuits where we time out or find that they don't work.
GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.