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.
@nmittler - Humm I think #2937 may have been resolved (or at least helped) by moving this check below the flow control and other checks.  Are we correctly checking what should be counted against flow control?  I guess I have 2 questions/concerns:
1) What if the stream is not in `OPEN', `HALF_CLOSED_LOCAL`, or `CLOSED` state?
2) If the immediate removal policy is in play could we miss stuff?  I think I remember seeing somewhere that the connection flow control events are handled elsewhere? (this is more of a general question not really related to these changes)