Add an IP address library

The library currently lives in a private subfolder so
that the interface can still be changed. The idea is to
eventually make it a top-level `net` library once it is
more mature.
Use net/private/ip in net/dns

This simplifies the code by outsourcing IP
address functionality to net/private/ip.