New Http2HttpDecoder to tranlate HTTP/2 frame read events into HttObjects

Netty Version: 5.0.0.Alpha2-SNAPSHOT

Context: To address #2658.

**Details**
The focus here is the `Http2HttpDecoder` class.  There are additional classes (i.e. `DelegatingHttp2HttpConnectionHandler`) to support common operations that have not yet made it into the HTTP/2 codeline.  It may be worth pulling these changes out into another pull-request and re-factoring the examples.

There is a new example to demonstrate the new functionality.  The focus here is on being able to support HttpObject operations such as `HttpContentDecompressor`.

@normanmaurer and @nmittler thanks for the suggestions and feel free to review and provide feedback.  There are a few TODO comments that I would particularly be interested in feedback on.
As expected the layer above handles this via `AbstractHttp2ConnectionHandler.onRstStreamRead`'s use of `connection.requireStream(streamid);`.  Code updated.  The stream life times are also more correct above (as expected).

While we are on the topic of stream lifetime that brings up the point that `InboundHttp2ToHttpAdapter` is tracking objects associated with streamIds.  This map is removing elements when the current interface supplies an `endOfStream` or an exception is locally detected.  To ensure the map gets cleaned up in all situations I think I need to be subscribing to the `Http2Connection.addListener` to pick up stream clean up events.