Restore old interface; add connect_proxy_early def

Instead of passing through a timeout object and changing the _new_conn and
_get_conn interfaces, check for a proxy connection and add a separate method to
connect() if necessary.