Support EnforceDistinctSubnets
Relays on the same IPv4 /16 or IPv6 /32 are treated like being in the same family, and thus relays with these similar IP addresses won't be included together in a circuit. Relay selection is now done with can_be_in_same_circuit
which now checks for both the family and the subnet. This fixes #43 (closed).