Convert new file processing to be asynchronous

The processing involved in creating a new file is now fully asynchronous
thanks to web workers. Implementation encountered two bugs in Firefox: a
missing FileReader, and an exception when trying to send an ArrayBuffer.
Add progress messages to fetch page