Fix select operation of osxfuse device

Function fuse_device_select implemented the poll interface, which is why it did
not work as expected.

Implementing the "select" operation on the /dev/osxfuse[0-9]+ devices allows
waiting for requests sent from the kernel extension to the user space FUSE
daemon in a very efficient manner while handling other events in the same
thread.

Patch by Thomas Nordin (@nordin)
Clean up kludges

* sizeof(struct fuse_selinfo) should be 24 bytes instead of 32 bytes on i386
  (Mac OS X 10.5 through 10.7)

* Replace "#if __LP64__" with "#ifdef __LP64__"
Unify copyrights
Remove unneeded English localization
Rename sysctls api_(major|minor) abi_(major|minor)
Mark I/O as done before returning from fuse_vnop_strategy
Fix VOL_CAP_FMT_CASE_SENSITIVE

Clear VOL_CAP_FMT_CASE_SENSITIVE if FUSE_CASE_INSENSITIVE flag is set in
FUSE_INIT.
Disable the KQUEUE feature on Mac OS X 10.6 and later

In Mac OS X 10.5 the file system implementation is responsible for posting
kqueue events. Starting with Mac OS X 10.6 VFS took over that job.
Use prefix FUSE_FSTYPENAME_PREFIX to compute FUSE_FSTYPENAME_MAXLEN
Update FUSE kernel interface to version 7.12

* Lowest suported ABI version is 7.8 (FUSE 2.7.3)

* Add macros "fuse_abi_in" and "fuse_abi_out" to translate FUSE messages
  from/to the kernel to the FUSE ABI version used to communicate with the user
  space daemon.

* Rewrite function fuse_body_audit

* New fetures based on user space notifications have not been implemented.

FUSE ABI 7.9

* Add "blksize" field to struct fuse_attr

  This field allows setting the optimal I/O block size on a per-file basis
  instead of setting it for the whole file system. Respect the per-file I/O
  size in fuse_vnop_read, fuse_vnop_write, and fuse_vnop_strategy.

* Add lk_flags in fuse_lk_in
* Add lock_owner field to fuse_setattr_in, fuse_read_in and fuse_write_in

  We use VFS provided file locking instead.

* New fuse_getattr_in input argument of GETATTR

  At the moment field fh is used only in fuse_vnop_create

* Add file flags field to fuse_read_in and fuse_write_in

  FUSE_WRITE_CACHE is set for fuse_vnop_strategy. We could set the flag for
  every write request, because we are always "guessing" the file handle.

FUSE ABI 7.10

* Add nonseekable open flag

  Non-seekable files are not supported on OS X. This flag is ignored.

FUSE API 7.11

* Add IOCTL message

  Linux FUSE IOCTL flags like FUSE_IOCTL_UNRESTRICTED are not supported on
  OS X. Enabling unrestricted mode by default would result in security
  implications. We don't trust the FUSE file system implementation. Therefore
  fall back on restricted mode.

  - Initialize I/O parameters as encoded in cmd.
  - RETRY from server is not allowed.

* Add unsolicited notification support

  Notification support is not implemented.

* Add POLL message and NOTIFY_POLL notification

  In OS X poll(2) is based on Kernel Queues. poll(2) is already suported for
  local file system changes. To create kernel events in user space use function
  fuse_knote_np.

FUSE ABI 7.12

* Add umask flag to input argument of open, mknod and mkdir

  Umask procesing in user space is not supported and would require a new kludge
  to access vfs_context_proc(context)->p_fd->fd_cmask. Therefore umask is set
  to 0.

* Add notification messages for invalidation of inodes and directory entries

  Notifications are not implemented.