feat: Support devEngines packageManager in workspaces (#13150)
## Why
Keep @turbo/workspaces package-manager detection aligned with the Rust
implementation added in #12388, so tooling accepts the same root package
manager declarations.
## What
Adds support for root `devEngines.packageManager` as a declaration
source after legacy top-level `packageManager`, with validation for
supported manager names and exact semver versions.
## How
- Top-level `packageManager` remains authoritative.
- Invalid `devEngines.packageManager` hard-errors instead of falling
back to lockfiles.
- Existing lockfile detection still applies when no declaration exists.
- Covered with focused `@turbo/workspaces` tests.
Verified with:
- `pnpm --dir packages/turbo-workspaces test`
- `pnpm --dir packages/turbo-workspaces check-types`