1. Enables http outbound to set up a HTTP tunnel above HTTP/1.1,
HTTP/1.1 over TLS, or HTTP/2 over TLS. Previously it only works for
plain HTTP/1.1
2. In setting up CONNECT tunnel, replaces handcrafted request with
standard http.Request
* Rewrite empty string checks more idiomatically.
* Change strings.ToLower comparisons to strings.EqualFold.
* Rewrite switch statement with only one case as if.