fix reduce() flush on complete
add throttle() operation for time-fixed upstream demand
add window():Stream operation to push result rather than polling
simplify and rename movingWindow() to movingBuffer(), to achieve the same behavior than before please refer to throttle()
add groupBy(): to create sub-streams for each new unique key
add few final where possible
fix resume() to resume actual pending elements instead of fixed batchSize (available() will still use batchSize).