chore: Add generic `CommandProvider` trait to `turborepo-task-executor` (#11358)
## Summary
Extract the `CommandProvider` trait and `CommandFactory` to
`turborepo-task-executor` as generic types parameterized by an error
type. This allows the command infrastructure to be shared while letting
`turborepo-lib` keep its specific error types and provider
implementations.
### Changes
- Add `command.rs` to `turborepo-task-executor` with:
- Generic `CommandProvider<E>` trait
- Generic `CommandFactory<'a, E>` struct
- Full test coverage
- Add `turborepo-env` and `turborepo-process` dependencies
- Update `turborepo-lib/command.rs` to use the generic trait via type
alias:
```rust
type CommandFactory<'a> = turborepo_task_executor::CommandFactory<'a,
Error>
```
- Provider implementations (`PackageGraphCommandProvider`,
`MicroFrontendProxyProvider`) remain in `turborepo-lib`
## Testing
- `cargo test -p turborepo-task-executor` - 7 tests pass
- `cargo test -p turborepo-lib --lib` - 253 tests pass