perf: Reduce `turbo watch` hash memory spikes (#12695)
## Summary
- Reduces transient memory growth in `turbo watch` by sharing package
hash maps instead of cloning them through the file watcher path.
- Coalesces repeated file events for the same package/input hash so
streaming writes schedule one follow-up hash instead of parallel
duplicate work.
- Keeps watch invalidation semantics intact while lowering pressure from
large dirty or untracked files.
## Testing
Added some tests to make sure no regressions on existing behavior.