dns: low-level DNS support and DNS resolver

net::dns implements low-level DNS message encoding and decoding, as well as a
porcelain DNS resolver.

TODO:

- Decoders for various record types
- Complete RFC 2535 support
- Look for other RFCs worth addressing
