chore: Extract turbo_json module to turborepo-turbo-json crate (#11344)
## Summary
Extract ~5,400 lines of turbo.json parsing, validation, and processing
code from `turborepo-lib` into a new `turborepo-turbo-json` crate. This
continues the modularization effort to make `turborepo-lib` a thin
orchestration layer.
## What's extracted
| File | Lines | Purpose |
|------|-------|---------|
| `lib.rs` | ~300 | Main `TurboJson` type, constants, core API |
| `raw.rs` | ~320 | Raw parsed types (`RawTurboJson`,
`RawTaskDefinition`, etc.) |
| `parser.rs` | ~340 | Biome-based JSON parsing |
| `processed.rs` | ~620 | Processed task definitions with DSL token
handling |
| `extend.rs` | ~610 | Task inheritance/extension logic |
| `validator.rs` | ~250 | turbo.json validation rules |
| `future_flags.rs` | ~40 | Feature flags |
| `error.rs` | ~320 | Error types with miette diagnostics |
## What stays in turborepo-lib
- `TurboJsonLoader` - Depends on MFE (microfrontends) and task_access
- `TurboJsonReader` - Reading turbo.json from disk
- `TaskDefinitionFromProcessed` trait - Creates `TaskDefinition` from
processed types
- Re-exports for backward compatibility
## Verification
- ✅ All 339 `turborepo-lib` tests pass
- ✅ All 57 `turborepo-turbo-json` tests pass
- ✅ All 72 engine tests pass
- ✅ Binary tested with `examples/basic`
- ✅ **Zero behavioral changes** for CLI users (error messages,
validation, parsing all identical)
## Test Plan
```bash
cargo test -p turborepo-turbo-json
cargo test -p turborepo-lib
cargo build --bin turbo
```