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

If a call to Gaze#close is made right between when Gaze#watchDir's
listener fires and the timeout executes, the watcher gets revived into a
state where it continues to watch.

Difficult to reproduce as it requires a separate spawned process to keep
making changes to a file during the close method call of a Gaze object.