Properly support HTTPS proxies.

An HTTP proxy, as configured in OSX at least, means it serves HTTP
requests and operates transparently without a CONNECT message. An
HTTPS proxy serves HTTPS requests and requires a CONNECT message.
It does not use a TLS session between the client and the proxy,
but will obviously proxy a TLS session between the client and
origin.

This effectively means we can only support HTTPS proxies.