Extending and then writing to the mmap file has a problem: if the disk
fills up, the mapping becomes invalid, and the Python interpreter will
get a SIGBUS, killing it. It's difficult to catch this gracefully;
there's no way to do that with existing modules. Instead, switch to
only using mmap when reading, and normal file writes when writing.
Since we only ever append, it should have similar performance.