Implement #scan

This operations takes a zero value and a block and applies the
block to every element using the last result as the first argument
and the current element as the second. The initial computation will
use the zero value as the first argument.

This #scan implentation as the first element in the result stream
is not the zero value as it is in other situations. This is because
the zero value element occurrence 'time' wouldn't make any sense.