HTTP/2 Draft 15

Motivation:
A new draft of the HTTP/2 spec has been released.

Modifications:
Make updates as defined in https://tools.ietf.org/html/draft-ietf-httpbis-http2-15

Result:
HTTP/2 codec is draft 15 compliant.
@Scottmitch it may be a bit of extra work, but I think it might be worth tackling now.  I think it might be cleaner to make Http2StreamException an inner class of Http2Exception (maybe just rename it to Http2Exception.StreamError). Then we can make its constructor private and we can keep all the static factory methods together.  We could have 2 versions of common factories, for example:

    Http2Exception connectionError(Http2Error error, String fmt, Object... args);
    Http2Exception streamError(int streamId, Http2Error error, String fmt, Object... args);

In this case the second one will call the first one if streamId == 0. We could add a second version of each for the case where we're wrapping another Throwable.

We could choose whether or not to expose the StreamError interface directly or to just add a static helper method `isStreamError`.

WDYT?