"Improve" stream handling

Browserify does weird things to streams and Buffers and it's a real
hassle trying to work around it on the browser. So this change adds a
`toStream` function that takes a stream-or-not-stream and tries to make
it into a definite-is-a-stream object.

It also gets wrapped in the Browserify so, with everthing happening
internally, we should be ok, right?