Move resolving from a SRV or Hostname to the Endpoint class

* Centralizes all DNS resolution of Endpoints, weither a hostname or a SRV record to `Endpoint:getHostInfo`
* Re-resolve these on every reconnection attempt.

![](http://i.imgur.com/xIN2ljB.gif)