Drop events if receiver is too slow
test: Add test for one action -> multiple events.

Commit adds tests executed for each platform and
logic used to write this kind of tests.
kqueue: (wip) Updates for watching directories.

Changes:
  - Write is reported only for files.
  - If directory is already watched, explicit watch will still process
    all it's files/subdirectories.
  - Send all events one by one instead of immediately.
kqueue: (wip) Fix for race & go vet & close fd.

Changes:
  - data race was caused by improper clear of slice.
  - go vet for named slices from other pkgs requires
    usage of keys during initialization.
  - close fd of watched files/dirs and kqueue
    in finalizer.
Merge pull request #43 from pblaszczyk/kqueue

kqueue & tests