Ability to handle non-101 HTTP Responses

Add the ability to handle non-upgrade responses (401, trusted 30x redirects, retries on 503, etc.).

If an on 'httpResponse' listener is present, pass the http response to the listener. Otherwise, fall back on the current behavior.