Added a `fill` method to channels, which lets a channel be used
like a promise if desired. Once a channel is "filled" with a value,
it will deliver that value to all readers waiting on it, forever.
Added listen and stream methods to channels.
Changed array length reference in stream method to be dynamic.
BUGFIX: The no-argument case for tasks did not add a formal callback parameter.

Well, this is not really a "bug", since the callback argument was
being picked up correctly, but it is significant in one case - mocha.
The mocha testing framework uses a function's ".length" property
to tell whether it is synchronous or asynchronous, and an expression
like "task { ... }" cannot serve as such a test function because
it wasn't declaring the callback as a formal parameter, so its
".length" would be zero.