Cleaned up the watcher further.
- Emits started and stopped events
- Wrap WatchEvent.Kind in a trait
- Wrap ENTRY_CREATE, ENTRY_MODIFY, ENTRY_DELETE in trait
- Fix trivial first test to be deterministic