Switch to mmap'd file

- Add mmap_with_zeros which creates a mmap'd file that always ends with
  at least one zero byte. If the source file is < PAGE_SIZE, this is
  given by POSIX. Otherwise, a zero-page is mmap'd to the end.