Try to put file system changes into chunks.

When switching git branches files get removed and readded again pretty
frequently, (presumably for good reasons). If we receive both a file
removed and a file added in the same notification we ignore it (and vice
versa).

I tried my best to make the mac thing do the right thing but it's
untested. FreeBSD got no love as usual.