Implement asynchronous DNS lookups

Optionally use [DaveRandom/Addr](https://github.com/DaveRandom/Addr) for DNS lookups, fall back to blocking lookups.