HTTP/2 Priority Algorithm Restructure

Motivation:
The current priority algorithm uses 2 different mechanisms to iterate the priority tree and send the results of the allocation.  The current algorithm also uses a two step phase where everything is traversed and allocation amounts are calculated and then everything is traversed again and everything that was allocated is sent.

Modifications:
- DefaultHttp2OutboundFlowController will allocate and send in the same looping structure.
- The recursive method will send only for the children instead of itself and its children which should simplify the recursion.

Result:
Hopefully simplified recursive algorithm with consistent tree iteration approach and 1 less iteration pass.
I'm not sure I understand.  Let me provide a bit of rational and see if that clarifies:

This check determines if the the subtree *wants* to send more bytes (less the bytes allocated to the child).  This can be beneficial because we don't yet know if the "evenly" distributed window can be utilized by all peers (they may be blocked or partially blocked).  I'm not tracking allocated bytes per tree, just per node (saves having to go all the way down the recursion tree every time to determine how much is allocated).  As soon as it it known no more can be allocated to that particular node then the write is done.