chore: Extract `turborepo-scope` crate from `turborepo-lib` (#11324)
## Summary
- Extracts the `run/scope/` module (~1,988 lines) into a new
`turborepo-scope` crate
- Continues the `turborepo-lib` decomposition effort (now ~75% complete)
## What's Extracted
| File | Contents |
|------|----------|
| `filter.rs` | `FilterResolver`, `PackageInference`, `ResolutionError`
|
| `target_selector.rs` | `TargetSelector`, `GitRange`,
`InvalidSelectorError` |
| `change_detector.rs` | `ScopeChangeDetector`, `GitChangeDetector`
trait |
| `simple_glob.rs` | `SimpleGlob` matching utilities |
## Changes
- New crate: `turborepo-scope` with 62 passing tests
- `turborepo-lib` now delegates to `turborepo_scope::resolve_packages()`
- Re-exports maintained for backward compatibility
- **No behavioral changes for CLI users**
## Testing
- All 62 scope tests pass
- All 410 turborepo-lib tests pass
- Verified `--filter` flag behavior manually:
- `--filter=web` ✅
- `--filter=web...` (with dependencies) ✅
- `--filter=...web` (with dependents) ✅
- `--filter='./packages/*'` (path glob) ✅
## Part of
Epic: Decompose turborepo-lib into modular crates