Turbopack: Restore watchers for children when using non-recursive FS watcher (#82130)
**This should be merged alongside #82258, as this introduces a potentially high time complexity operation that #82258 solves.**
With this PR and the previous one, my fuzzer shows that we capture every (currently tested) file change correctly:
```
rm -rf /tmp/fuzz && cargo run --release -p turbo-tasks-fuzz -- fs-watcher --fs-root /tmp/fuzz
```
However, this does add an `O(n)` iteration of the `watching` map that I'm working on cleaning up (why this is still a draft).
I'll do something similar to https://github.com/vercel/next.js/pull/82133, but it's a bit more complicated to switch to a `BTreeSet` because it's currently using a `DashSet`, and I don't want to introduce more locking than I have to.