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.
@nmittler - I see you have already implemented a `DefaultHttp2StreamRemovalPolicy` class. I guess I could use this (or something similar) to delay the `removeStream` call.  I would just need to think where to insert this into the pipeline because `InboundHttp2ToHttpAdapter` is not a `ChannelHandler` and does not have a `handlerAdded` method where it can easily extend the pipeline.  I would like to avoid introducing too many additional interface dependencies to address this issue.

I'm just thinking it would be cleaner if the header/data events could be dispatched before the connection close events, but I'm not sure if this violates any assumptions in the existing http2 codec code.  `Http2ConnectionAdapter` is the only use of `Http2Connection.Listener` and I don't see any implementations of the `streamRemoved` method from any of its child classes (other than the one I just added in `InboundHttp2ToHttpAdapter`).