Kqueue

Rework the kqueue code:

* add low-level kqueue wrapper functions used by the rest of fsnotify's kqueue implementation
* one mutex instead of several more granular ones, as suggested in #13
* some additional refactoring

Notes:

* No longer checks for EV_ERROR, see https://github.com/go-fsnotify/fsnotify/issues/24#issuecomment-55530131.