feat: add support for --parallel (#6339)
### Description
This PR hooks up the correct behavior of `--parallel`
Some code shuffling happens in the first few commits to get the Rust
`run` function in a closer shape the Go code.
### Testing Instructions
- Create a new repo with `npx create-turbo`
- Remove installed version of turbo `npm rm turbo`
- Add a `build` script to `packages/ui/package.json`: `"build": "echo
'building'; sleep 5; echo 'done'",`
- `turbo_dev build --parallel --experimental-rust-codepath` should show
that `docs#build` and `web#build` start before`ui#build` is finished
even though they depend on the `ui` workspace
Closes TURBO-1566
---------
Co-authored-by: Chris Olszewski <Chris Olszewski>