re-resolve tcp addresses on reconnections

Resolve the address on `add_reconnect_timer`, to tolerate DNS changes.

This might look expensive but in reality, the code eventually calls `InetAddress.getByName` which is cached internally in the jdk and also configurable, (see http://stackoverflow.com/questions/12099526/setting-java-dns-cache-ttl) so not only you get tolerance to DNS changes but also respect what the user chose as it's DNS ttl timeout.