Make colist functions greedy CPS-style transforms

Epiphany! Transforms can be treated as continuation-passing-style event
streams based on callbacks, allowing them to be greedy OR lazy.

- Localizes coroutine code... lazily() will wrap a cps event stream and
  pass coroutine.yield as a callback.
- Transformations can be consumed as many times as you like. Event
  functions recreate their transformations all the way back down to the
  source whenever you call them.
- Transforms are reduced to fundamental logic... no implementation.