Close open files in tests better, for fewer hangs and timeouts
Add flag -fuse.debug to hellofs

This makes it easier to use for experiments, while still keeping its
simple example qualities. You can now run arbitrary file system
actions against a hellofs mount, and see the operations triggered in
the debug log.
Add test for mmap

Test needs to run in a subprocess, to avoid a hang where the process
would need to serve its own page fault via FUSE.
Use kernel page cache by default, changes behavior significantly

We no longer set the fuse.OpenDirectIO flag by default in Open and
Create. The default is now to follow the normal FUSE & Linux
conventions: every single read and write operation is *not* served via
FUSE, but can be served completely by the page cache.

This improves performance and lowers overheads.

This allows using mmap(2) without extra effort from the file system.

This is a significant behavior change that may not be compatible with
existing code. However, making this change both improves typical
performance and brings bazil.org/fuse closer to typical FUSE/file
system behavior.

As a specific point that demands attention, the Size returned by Attr
now must be correct. Size 0 means Read will never be called.

To go back to the (poorly named) "direct IO" way, set the flag in
Open and Create methods:

    func (f *MyFile) Open(req *fuse.OpenRequest, resp *fuse.OpenResponse, intr fs.Intr) (fs.Handle, fuse.Error) {
            // do not allow the kernel to use page cache
            resp.Flags |= fuse.OpenDirectIO
            return f, nil
    }

Fixes: #11