index: implement File -> ArrayBuffer manual conversion for Firefox

Firefox apparently doesn't like sending `File` instances cross-domain.
It results in a "DataCloneError: The object could not be cloned." error.
Apparently this is for "security purposes" but it's actually silly if that's
the argument because we can just read the File manually into an ArrayBuffer
to work around this "security restriction".

See: https://bugzilla.mozilla.org/show_bug.cgi?id=722126#c8