streams2 and web worker support

Not sure how you feel about this vs publishing a new module, but this PR ports this module to streams2.  It's a pretty big API change, so it will have to be a major version update so backward compatibility isn't compromised.  Specifically:

* There is no more `output` option - the output is always buffers, or strings according to streams2's `setEncoding` method on readable streams.
* No more `progress` event - it isn't really possible to know the progress of the stream consumers, which isn't necessarily the same as the progress of the file reader.

Otherwise it should work fine: piping still works, etc.

This PR also adds support for web workers in Firefox, where `FileReader` is not supported by `FileReaderSync` is.

Let me know what you think. If it's too big of a change, I can publish as a separate module.