Handle alternate stream that may be async

I took this from the async test of through module: https://github.com/dominictarr/through/blob/master/test/async.js

* [ ] need tests
* [ ] use through2 over through

Closes #6