Implement Array Stream builder
See #701, #700, #660. Array stream builder is the next level after an array builder. We can build a stream of arrays or write an array as soon as it is filled, yield it and start filling another array.
We can extend Builder t a to Builder t m a for array write effects. If a is Storable the builder instance can write to an Array and later return a stream from the Array. That way we can transparently back the stream by an Array, using the same unified interface but providing unboxed array like performance. We can either yield a stream of arrays or a stream of elements. We may need to control the array chunk size via a state.
We have a buildChunks fold to build a stream of arrays. However, as suggested in #701 for building an array, similarly we can have a builder monad to build a stream of arrays.