Code changes based on following comments.

- Do not modify the dialer so that the caller can use the dialer concurrently.
- The use of TLS should be based on the protocol, not the presence of the TLS configuration.
- The server name should be set in the a cloned tls config.
- The handshake deadline can be computed once at the start of dial. The calculations with tm0, tmLeft are unnecessary.