Use Concurrent.unicast rather than broadcast for enumerating Java chunked responses

This change improved performance by 17% in one simple benchmark
Mute exhaustive match warnings when pattern matching Steps

This fixes warnings accidentally introduced in 27bf35e.
Use a Promise to avoid a race when attaching Chunks disconnect callbacks

I didn't actually see this race happening in practice, but I could see how it would be possible.
Merge pull request #2623 from richdougherty/java-chunked-unicast

Use Concurrent.unicast for Java chunked responses