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.
The list of special use networks is much larger that well-known 3 private networks. E.g. 169.254.0.0/16 can't be considered as a public IP addresses. See http://tools.ietf.org/html/rfc6890 for more information.