Fix watcher test that had a race condition

What I considered to be a single file change event was being reported as
multiple events, possibly because the file watching system was more responsive.
Also, use promises rather than the sketchy sleep-waiting-for-change technique
that was being used before.
Simplify unit tests for watcher module

- Do not throw an exception if a change is reported twice in test-for-file. This
  is because there is no point in our app where a false positive event will
  cause a problem, and I'm not confident that all platforms will report creating
  the file as a single event.
- When delivering a promise, do not check if the promise is not realized before
  delivering, since deliver does not report an error if it is already delivered.