Changing stream verification to throw Http2StreamException.

Motivation:

Currently when receiving DATA/HEADERS frames, we throw Http2Exception (a
connection error) instead of Http2StreamException (stream error).  This
is incorrect according to the HTTP/2 spec.

Modifications:

Change the Http2Stream.verifyState method to throw Http2StreamException.

Result:

Stream state verification is properly handled.
@Scottmitch after thinking about it more, I think the special code for "unknown" frames should be reverted.  We're basically leaving all processing up to the listener.  It may be possible that they can override the flag for end-of-stream for a custom frame type, for example.  

Also, the current code is only a partial solution... we should also be half-closing the stream.

WDYT?