refactor(turbo-tasks): Introduce a OperationValue trait, generalized from the ResolvedValue trait (#72788)
Based on some discussion I had with @sokra, we determined that we should enforce that [`State<T>` types](https://turbopack-rust-docs.vercel.sh/rustdoc/turbo_tasks/struct.State.html) should not contain `Vc` or `ResolvedVc`, and should only contain `OperationVc`.
This lays the groundwork for enforcing this using the type system by generalizing the logic I already had for the [`ResolvedValue`](https://turbopack-rust-docs.vercel.sh/rustdoc/turbo_tasks/trait.ResolvedValue.html) marker trait. We'll also probably want to follow this up with a PR that renames `ResolvedValue` to something like `NonLocalValue` and allow it to contain `OperationVc` as well. An `OperationVc` should be valid in a `#[turbo_tasks::value]`, we only care that there's sane equality and that there's no potentially-local `Vc` in there (`OperationVc` is not local).