Change Stream.zipWithAll to produce finite streams when both source
streams end.

Remove the unfold case where both streams are exhausted, the case is
never matched since we made the streams infinite.

Add a check to end the resulting stream when both argument streams of
the zip function have no more elements left.