Use Guard as Fallback Directory
When a client hasn't used the Tor network for a few days, its consensus expires. If the authorities are blocked while it's offline, it can't bootstrap.
However, it has (almost) enough information to bootstrap from a semi-trusted relay - its guard.
This change requires:
- a proposal
- an additional line
GuardFallbackDir
in the state file, formatted like a FallbackDir line, if the guard is also a directory mirror
When legacy/trac#12538 (moved) is implemented, every relay (and therefore every Guard) will be a directory cache by default.