Added support for reading File objects

Uses the same code as the Blob stuff before (fileReader can take a
Blob or File, and make an ArrayBuffer from either).

Browsers can now directly pass file handles because why not, probably
more useful than blobs.