HTTP Upgrade requests should be able to use the regular request processing path

This PR contains changes to provide better support for HTTP Upgrades on both the Server and Client:

* HTTP Upgrade requests should be able to use the regular request processing path
* HTTP Client should support handling Upgrade responses
* Provide Tests for HTTP Upgrade Support