Fixed a bug in the WatchingDirectoryObserver that caused
hasChangedSinceLastCheck() to always return true.
Avoid unnecessary dir.exists() invocations for performance reasons.