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).
msg may be null in a few different situations:

1. The `priorityTreeParentChanged` callback is invoked before the onXXXRead methods are called.  This means the HTTP translation layer does not know about the message yet.  This sounds like an ordering issue but I didn't change it because of other flow related issues.  I can investigate re-ordering again if you would like.
2. If a priority frame is received outside the HTTP message flow as defined in http://tools.ietf.org/html/draft-ietf-httpbis-http2-14#section-5.1 (half closed local/remote, closed,  and possibly reserved local/remote).  Events in these states may be filtered by the http2-codec code above this but this check means we are not relying on the above layer to filter any of these events.