Correctly decrement the counter in the Stream.takeViaUnfold method.

The counter passed to the unfold functions is now decremented at each
unfold step, preventing non terminating recursion.

The Stream.zipWithAll function is more in line with the book description, which states the zipped stream
should end when both original zipped streams have no more elements left.

Sorry for making a request on the main trunk, but it seems such a trivial error.