adds support for retrieving headers from the request and response objects
adds an example to demonstrate subprotocol negotiation