Support CONNECT for HTTP, use tunnel with proxies

Use tunnel when proxying through outside proxy.
Handle CONNECT for HTTP too (at least partially - it requires request
path to contain full url, not just target host and port.