Hello example is consistent about readdir vs stat inode
Pass fs as part of serveConn
Rewrite dynamic inode selection

Now it only remembers the inode number, not the full path to the file.
Less string manipulation and cheaper state to remember.
Add FSInodeGenerator, FS can now set policy for dynamically generated inodes
Remove leftover type errno, nothing uses it
Export fuse.Error.Errno() as a step toward using just error
Methods can now return arbitrary errors

The error messages will show up in debug logs as part of the FUSE
response.

Existing code should be returning fuse.Errno values, and see no
behavior changes.

The fuse.Error interface now matches the standard error interface.
fuse.Errno implements error and returns the textual error message.
Logs show just the ENOENT-style identifier for Errno values, for
brevity.

Arbitrary errors cause kernel to see EIO. To control the errno, either
keep returning fuse.Errno values (e.g. fuse.ENOENT), or embed it in
your custom error type, or add make your error type implement the
ErrorNumber interface.

The fuse.Error type is still used everywhere, to avoid API changes.
Unify OS X extended attribute error codes for non-Errno errors

Previously, translateGetxattrError assumed the error is an Errno
value; this change allows embedding and implementing ErrorNumber.
Pretty logging for error messages

Instead of just stringifying the error, format it so that both the
errno and the freeform error message (if any) are visible. For
example: "EIO: connection timed out".

This makes sense because a FUSE file system developer needs to be
acutely aware of the errnos used, and now the work can be done in just
one place, and the developer can memorize the identifiers used in the
source, instead of the long form descriptions of the errors.

For structured logging, as encoding/json and others would marshal many
custom error types as just "{}" (struct with no exported fields),
preprocess the error into two fields:

- Errno: the errno constant as a string, for example "ENOENT"; always
  set for errors

- Error: the message returned from Error(); may not be present
Test custom errors, using default EIO and embedded ErrorNumber
Avoid spurious test failures due to O_CLOEXEC mishandling on Linux <3.7

The Linux fix is in kernel repo commit
c6f3d81115989e274c42a852222b80d2e14ced6f

Thanks to Nick Cooper <gh@smoogle.org>

Fixes: bazillion/fuse#14
goimports