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 see the IntObjectHashMap making the [Arrays.newInstance](https://github.com/netty/netty/blob/2c9592560918f298f6a77b8e2c5f7935d578ae2b/common/src/main/java/io/netty/util/collection/IntObjectHashMap.java#L226) call.  Is this what you mean by unmodifiable?  I think ultimate return to the user is still modifiable (I don't think `Arrays.asList(...)` guarantees unmodifiability)?  Also I'm not sure the [Arrays.asList(...)](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Arrays.java#Arrays.asList%28java.lang.Object%5B%5D%29) call is guaranteed to not copy (as you can see for open JDK it is copying into an ArrayList).

I understand the copy constructor of the collections will take care of the sizing.  My suggestion is to provide a way to avoid the `Arrays.asList(...)` call, return a Collection, and then have to copy the Collection into your collection type of choice.  I think we can avoid the `Arrays.asList(...)` by taking as a parameter a `Collection` and call `addAll(...)` instead.