Make sure that a circuit doesn't use relays in the same family

Moved from #28 (closed).

To do this:

  • Start by implementing a "same-family?" predicate in tor-netdir, probably as a method for the Relay type.
  • Then use this predicate in tor-circmgr/path/exitpath.rs.
  • Implement something like the EnforceDistinctSubnets feature from C tor.
Edited by Nick Mathewson