Add test to reproduce race condition in watchDir
fix watchDir not respecting close in race cond.

When a change is made right during the close method, before the timeout
of the watchDir is executed, the watcher gets revived into a state where
it prevents new watchers from watching the same directory and triggering
the event.

Difficult to reproduce as it requires a spawned process to keep hitting
during the close of a Gaze object.