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.
Look at the new code since this has changed.  The new code does a BFS, but it's hidden in the method scaleChildWeights which takes a first pass across all the children to figure out what their weight should be based on the amount of streamable data they have. Once we've scaled the weights, we just iterate through the children and write the data for each tree.