0.0.14
Changing how cleanStreams works.  Instead of relying on processing the streams in real time, it now appends the data to a buffer, and the processing works on that buffer.  Everytime the data event fires, it should enqueue another call to the process function in the event loop.  If one is already running, that process should get to the data that was just added.  If this happens, the next enqueued call will have no data to process, and just return