add low-level kqueue functions

to separate out that functionality
kqueue: done can be an unbuffered channel
kqueue: only need to store flags on directories
kqueue: split off newCreateEvent

more clear.
kqueue: pathInfo struct containing name and isDir

we don't use fileInfo for anything but IsDir
FIXME: something doesn't seem quite right

Ref: https://github.com/go-fsnotify/fsnotify/blob/v0.9.0/fsnotify_bsd.go#L384
kqueue: less mutexes

closes #13
kqueue: remove calls to os.NewSyscallError

calling os.NewSyscallError would silently break comparisons with the syscall constants. it didn't really add much value either, besides the "Kevent" prefix.

http://play.golang.org/p/YKbmygNDu4
update changelog (dev)

rework kqueue internals

closes #13
closes #43
readme: test against master
Merge branch 'master' into inotify
inotify: not call Remove() in Close()

inotify(7) says:
    When all file descriptors referring to an inotify instance
    have been closed, the underlying object and its resources are
    freed for reuse by the kernel; all associated watches are
    automatically freed.