Reduce jank in Safari and Chrome

Instead of converting the entire input file to ArrayBuffers as soon
as it downloads, leave unused portions in the binary string until
we actually read the chunks.

This avoids slowdowns during initial load of a large file.