Finalize design for improved guard-node behavior
Bugs like #12466 (moved) and #12450 (moved) have made it clear that the data structures and methods of the guard nodes code are not very robust. To fix those tickets with the current data structures, we would need even more kludges that would lower the code quality.
This is a ticket about finding a more elegant approach to keeping entry guards and directory guards.
I'm putting this in 0.2.6 milestone because it's important, but it might get deferred if it's too much work.