Make this.derive() for simple use cases like .map(), .filter().
Play with .end().
Sharpend end() and test framework used to test it.
Clean up log()s.
Replace process.nextTick() with setImmediate(), shorter and lets I/O happen, too.
Test end() for uniq(), too.