fix: Preserve Yarn package extension ranges when pruning (#13363)
## Why
Yarn package extensions can contribute hidden dependency ranges that
`turbo prune` cannot see as normal dependency edges. This produced
pruned lockfiles that `yarn install --immutable` rejected by either
adding a required range or removing an orphaned one.
Closes #13361
## What
Use reachable peer descriptors to identify extension ranges while
retaining the existing handling for Yarn `@types` extensions. This
distinguishes multiple ranges merged into one lockfile entry.
Add the issue reproduction as a `check-lockfiles` fixture covering both
over-pruning and under-pruning.
## How
- `cargo test -p turborepo-lockfiles`
- `cargo clippy -p turborepo-lockfiles --all-targets -- -D warnings`
- `pnpm --dir lockfile-tests check-lockfiles --pm yarn-berry
--turbo-path ../target/debug/turbo`