fs: Refactor the code around `GlobalWatcher` to be more testable (#63894)

This is a pure refactoring PR to make our FS watching code more
testable. It does two things:

1. Make the `GlobalWatcher` be owned by `RealFs` or `FakeFs` instead of
being a process-wide global.
2. Delete `FakeWatcher` and its `Watcher` implementation, and instead
mock the notify crate itself in `FakeFs` tests via the existing
`WatchBackend` trait. Now all our FS watching code down to the notify
boundary runs the same in tests and production.

Release Notes:
- N/A
db10a8dd73Cole Miller committed on 9/7/2026, 7:01:41 PM· committed by GitHubparentad51f68
23 files changedLine totals unavailable