added ScanNow()
ScanNow() causes the file watch loop to run once, and ensures all events have been posted before returning. It blocks until the loop has ran through to completion once. It allows the caller to "synchronize" with the file system state, so is useful for batch updating after it is known / suspected file events have probably occurred.
Example use:
When an application triggers a bunch of changes to watched files itself, it knows there will be some watcher events in the future, and may want to wait until they've all occurred before continuing, rather than having them occur at some unknown point in the future (depending on the poll interval). It can make the changes, call ScanNow() and know when it returns that all watcher events from its changes have been received.