feat: Task-level `extends` field (#11259)
## What?
Adds task-level `extends` field to Package Configuration task
definitions, allowing workspaces to exclude specific tasks from
inheritance.
## Why?
Enables workspaces to opt-out of inherited tasks from root/parent
configs. Previously, if root defined `lint`, all workspaces inherited
it. Now workspaces can exclude tasks they don't need.
## How?
- `"extends": false` (no other config) → task excluded entirely for
workspace
- `"extends": false` (with other config) → fresh task definition, no
inheritance
- `extends` disallowed in root `turbo.json` (validation error added)
- Exclusions propagate through extends chain
- Modified engine/builder.rs to track exclusion state through
inheritance resolution
- Added `validate_no_task_extends_in_root` validator
- Updated JSON schema with `extends` boolean field
## Testing instructions
Added testing all around this functionality and have manually tested
many situations to see how the API feels.