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