Integrated instance addresses and networks

Moved several items from the instance package
to the environ/network package, renamed some
of them, and propagated the changes across:
 - instance.Address -> network.Address
 - instance.AddressType -> network.AddressType
 - instance.HostName -> network.HostName
 - instance.Ipv4Address -> network.IPv4Address
 - instance.Ipv6Address -> network.IPv6Address
 - instance.NetworkScope -> network.Scope
 - instance.Address.NetworkScope -> n.Address.Scope
 - instance.Network* -> network.Scope*
 - instance.NewAddress(es) -> network.NewAddress(es)
 - instance.HostPort -> network.HostPort
 - instance.Port -> network.Port
 - instance.Select*() -> network.Select*()
 - instance.SortPorts -> network.SortPorts
 - instance.ErrNoDNSName -> network.ErrNoDNSName

(I might have missed some, but you get the idea).

Also, some refactoring was done to split addresses and
ports implementation in separate files and test suites.

No other logic changes introduced - the rest is just
mechanically applying the changes above.
wow... this just seems so wrong (not what you did, but the existing test". If we need SelectPublicAddress to give IPv6 then we should fix it there, not do a crazy hack to pretend a V6 address is a V4...

Anyway, nothing for you to do, just wanted to comment that if we are looking at IPv6 support, stuff like this is just broken.