Updating HTTP/2 tests to not retain buffers for validation

Motivation:

To eliminate the tests as being a cause of leaks, removing the automatic
retaining of ByteBufs in Http2TestUtil.

Modifications:

Each test that relied on retaining buffers for validation has been
modified to copy the buffer into a list of Strings that are manually
validated after the message is received.

Result:

The HTTP/2 tests should (hopefully) no longer be reporting erroneous
leaks due to the testing code, itself.
HTTP/2 to HTTP buffer ordering

Motivation:
The HTTP tranlsation layer uses a FullHttpMessage object after it has been fired up the pipeline.
Although the content ByteBuf is not used by default it is still not ideal to use a releasable object
after it has potentially been released.

Modifications:
-InboundHttp2ToHttpAdapter ordering issues will be corrected

Result:
Safer access to releasable objects in the HTTP/2 to HTTP translation layer.
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.