Fix bug in HTTP/2 outbound flow control

Motivation:

The outbound flow controller logic does not properly reset the allocated
bytes between successive invocations of the priority algorithm.

Modifications:

Updated the priority algorithm to reset the allocated bytes for each
stream.

Result:

Each call to the priority algorithm now starts with zero allocated bytes
for each stream.
I am a bit concerned about what happens to stream state if an exception is thrown by `writeBytes(...)` or a the self recursive call inside this method.the exception is thrown.  So a few options/questions:

1) I'm wondering if we can get rid of the `throws Http2Exception` on this method?  It looks like the throws comes from `writeBytes(...)` which comes from `Frame.write(...)` and I'm not sure why `Frame.write(...)` needs to throw an exception (only call that throws inside this method is a recursive call to itself).  So we may be able to remove the throws from all 3 methods?

or

2) Do we need to clean up stream state if an exception is thrown from the methods I mentioned?