* Watcher: Add onClosed event and callback * Update the code generators to accept the onClose callback * Re-generate API * Update unit tests * Fix unit test * Watcher fixes/improvements: - Run Task.Yield at the beginning to make sure we're running async - Set Watching = false before invoking OnClosed, to make sure the callers see a consistent state.