Protocols.DNS: The async operations now return the Request object. This is to make the caller able to cancel requests and similar. Note that the returned object is destructed when the request completes. Also adds some AutoDoc.