HTTP/2 Write Compression Support

Motivation:
The HTTP/2 codec does not supply an interface which facilitates doing data write compression.
Compressing data is anticipated to be a common use case and this feature is thus anticipated to be useful.

Modifications:
-Restructure the AbstractHttp2ConnectionHandler class to be able to extend write behavior before the outbound flow control gets the data
-Add classes which override the newly restructured interfaces to provide an extensible compression interface
-Add unit tests to test the new capability

Result:
HTTP/2 codec provides an interface (and default implementation) for data write compression.
It seems like we're now separating this handler into 2: reading and writing.  Have you considered going all the way and just making 2 separate handlers (i.e. Http2InboundConnectionHandler and Http2OutboundConnectionHandler).  This might help to eliminate some of the naming cruft a bit ... Http2OutboundFrameProducer -> Http2OutboundConnectionHandler.  WDYT?