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.
Right the first loop isn't an issue, it just allocates and writes when nothing more can be allocated.  This loop, however, may cause multiple writes per stream (due to the recursive nature of this method) which, depending on how fragmented the write become in extreme cases, could lead to performance issues on both the sending and receiving side.