Reachability testing and channel is_local assume private addresses are local

Split from legacy/trac#13718 (moved).

The way tor determines reachability is broken for test, internal, and local networks.

When we set is_local on a channel, we assume private addresses are local DirAllowPrivateAddresses is 0. We then use is_local to determine whether a connection is from another router.

To properly bootstrap a testing tor network on private address(es), we must assume that every incoming OR connection is remote.

So we ignore is_local when TestingTorNetwork is 1.

I'm working on a patch that, when we're on a local address and DirAllowPrivateAddresses is 1, then checks whether we're connecting to our own digest, or another router's.

When we don't (yet) have this information (e.g. a reverse proxied connection), I think it's safer to assume local, and defer confirmation of reachability until we know who is at the other end. (This is no worse than the current behaviour.)