Make sure that a circuit doesn't use relays in the same family (#43)
Relay::in_same_family which is in turn used by ExitPathBuilder::pick_path` to avoid picking relays in the
Compared to the original C implementation, we are missing support for options EnforceDistinctSubnets and NodeFamilySets.
This has only been very lightly tested so far. It feels like a small test framework is missing to verify some properties of the path selection algorithm.
I'm both quite new to Rust and to Tor internals, I'll gladly welcome suggestions for improvements.