Add HTTPClientResponse.upgradeConnection()

Since the response does not have access to the request headers,
the expected protocol must be supplied as a parameter.

This is needed, for instance, to create client-side websockets.