DNS API initial implementation

Initial stab at async dns integration

Implement and test the DNS API.

Still todo is to make life a little easier and wrap the `List<T>` values
that are `AsyncHandler` result objects so that JS developers don't have
to call `result.get(0)` for example.

Add impl and tests for dns.resolveCNAME and dns.resolveSRV

Use vert-x/testtools' TestDnsServer instead of rolling our own

Add dns.lookup6, dns.resolveAAAA and dns.resolvePTR

Add dns.reverseLookup and tests for IPv4+IPv6

Don't expose Java Inet4Address objects to Javascript clients

Don't expose Java MxRecord and SrvRecords to Javascript clients

Plug some implementation leaks

Finish up DNS API documentation