NAT detect

Adds in some methods that determine if you are behind a NAT when connecting to a remote peer. Also prevents connection to loopback addresses
Can move this to multiaddr (i can handle this if dont want to)