tor-netdir: Only select nodes that haven't been used for lower-numbered replicas.
This implements the part of the spec that says a node that has already
been selected for a lowered-numbered replica, shouldn't be considered
when choosing spread
nodes for any other higher-numbered replicas.
Note: previously, the test added in this MR wouldn't have passed
(because NetDir::hs_dirs
used to return duplicate relays under some
circumstances).
This MR contains a few other minor fixes (each contained in a separate commit).
Part of #960 (closed)