Https proxy

Previously the timeout was set on the the connection too late in the process.
This change passes through the timeout value to _new_conn so it's set for proxy
connection attempts.

Not too happy with the interface change though and open to suggestions.
-1 on this, there is no benefit over assigning it to a named var.

`is_new_proxy_conn = self.proxy is not None and not getattr(conn, 'sock', None)`