correct behavior for https_proxy,
e.g. don't send plain https:// requests to proxy, but instead establish
CONNECT tunnel and then send requests inside tunnel.
This change does together with a change in LWP::Protocol::https.
The change supports LWP::Protocol::https with the default
IO::Socket::SSL backend, but also with Net::SSL. Also:
- proxy authorization is supported (http://user:pass@host:port as proxy
  URL, Net::SSL still needs special HTTPS_PROXY_* environemt variables,
  as before)
- CONNECT request does not need to be the first request inside the
  tunnel (not with Net::SSL)
- conn_cache is read and written inside request(), instead of writing in
  request() and reading in _new_socket(). If a https tunnel is
  established the cache_key no longer depends only on proxy host,port
  but also on the tunnel endpoint
- CONNECT is a proxy request and must always use Proxy-Authorization,
  not Authorization header