preparation for asynchronous DNS resolution

This is an initial step towards fully asynchronous DNS resolution.
Right now it improves things by loading the resolution off to a separate actor with potentially dedicated dispatcher.
The code is covered by TcpConnectionSpec "report failed connection attempt when target cannot be resolved", although only unsuccessful resolution is tested.

Fully asynchronous DNS client coming soon, it's already working in production, but isn't 100% RFC compliant.    
I was thinking that for the normal path we didn't have to use the message passing at all. A method call is always faster than a message send, so if we have no good reason for the message and the refactoring is simple then we should use a method.

Sorry if I'm nitpicking on performance things all the time here, but this is supposed to be used in a context (e.g. akka-http) where such things matters, if I have understood the scope correctly.