DiskFileSystem: run write effects on a spawned task (#94140)
### What?
Make `DiskFileSystem` write and symlink effects run on their own spawned
tasks, so multiple pending writes can execute in parallel rather than
serially on the caller's future.
### Why?
Effects emitted by `DiskFileSystem::write` and `write_link` were
previously applied inline within the caller's future. That meant the
work for each effect ran sequentially in the awaiting task — writes did
not overlap even though each one is largely I/O bound (path validation,
lock acquisition, file write, fsync).
### How?
- `WriteEffect` and `WriteLinkEffect` now derive `Clone` and own their
data so they can be moved into a spawned task. `full_path` becomes
`Arc<PathBuf>` to keep cloning cheap.
- `apply_inner` takes `self` by value instead of `&self`.
- `apply()` now calls `spawn(self.clone().apply_inner())` so the effect
body runs on a dedicated turbo-tasks task. Multiple effects awaited
concurrently will execute in parallel.
Closes NEXT-
Fixes #
<!-- NEXT_JS_LLM_PR -->