fix(pnpm): support new pnpm9 default link-workspace-packages (#7865)
### Description
With [PNPM 9](https://github.com/pnpm/pnpm/releases/tag/v9.0.0-alpha.0),
[link-workspace-packages]() is now defaulting to `false` meaning that
unless the `workspace` protocol is explicitly used, packages from the
registry will be preferred over workspace packages.
It's odd to have 3 variants of the PNPM package manager, but that is the
current state of the world. Unsure of why we changed from a generic
interface to a enum in the Go->Rust port, but we'll probably want to go
back to that world to reduce match statement complexity.
### Testing Instructions
Unit tests for package manager detection. Quick spot check in a
`create-turbo` repo with workspace deps updates so they don't use
`workspace` protocol.
Closes TURBO-2733