Slice Blobs before pulling out the binary data.

When using as a web worker, I was seeing large (hundred of MB) files
crash the browser (latest Chrome and Firefox) when passed in to the
worker as a Blob. This appeared to be happening when readAsBinaryString
was called on the entire Blob, presumably because it was attempting to
load the entire file contents. These changes slice the blob prior to
using readAsBinaryString.