HTTP/2 to HTTP priority translation

Motivation:

The priority information reported by the HTTP/2 to HTTP tranlsation layer is not correct in all situations.
The HTTP translation layer is not using the Http2Connection.Listener interface to track tree restructures.
This incorrect information is being sent up to clients and is misleading.

Modifications:
-Restructure InboundHttp2ToHttpAdapter to allow a default data/header mode
-Extend this interface to provide an optional priority translation layer

Result:
-Priority information being correctly reported in HTTP/2 to HTTP translation layer
-Cleaner code with seperation of concerns (optional priority conversion).
I just experimented and this code is able to function regardless of the order `stream.setPriority(streamDependency, weight, exclusive);` w.r.t the onXXXRead methods, but I don't think that changes the need for the checking that I do here.

While we are on the topic can you explain the conditions under which this line is called https://github.com/netty/netty/blob/master/codec-http2/src/main/java/io/netty/handler/codec/http2/AbstractHttp2ConnectionHandler.java#L909? For example is there a reason why we are only updating in the OPEN state as apposed to all the other states for which headers can be received (http://tools.ietf.org/html/draft-ietf-httpbis-http2-14#section-5.1)?