Use a callback-based API for DNS lookup, in preparation for ADNS
integration. Block clients, and make them invisible for all other clients, until the DNS lookup has completed. The session_start field of a Connection was used both to record the connect time and the login/logout time. As a result, the connection-time of a Static-Session-Info was not actually static. Fixed by keeping track of the connect time and the login/logout separately.