Make mmap2 interruptible and add tests. Resolves #129.