more realistic host connectability check
This PR adds a more realistic host connectability checking algorithm. Instead of simply attempting to dial itself and setting its status based on the success or failure of that Dial, this PR adds a new rpc CheckHost
. threadedTrackConnectabilityStatus
selects at random two outbound peers and asks them to check the host's netaddress, using CheckHost
. If both peers agree on the host's ConnectabilityStatus, the host will set its ConnectabilityStatus accordingly.