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 
1) I think I've tightened up the logic for when flow control should be applied.
2) I think we should get rid of the immediate removal policy altogether and make the default policy the ... default :).  WDYT?