refactor(turbo-tasks): Use Return Position Impl Traits (RPIT) to reimplement GraphTraversal (#74896)
Reimplements `GraphTraversal` without the manual `Future` implementation. This was [part of an experiment to try to use RPIT in the `Visit` trait](https://vercel.slack.com/archives/C02MK5YRKNZ/p1736864833846679), but I didn't quite get that far.
This code likely didn't use RPIT when it was written because RPIT on traits wasn't stable (or even fully implemented in rustc?) at that time.
This removes some unsafe code and a use of the unstable nightly-only `impl_trait_in_assoc_type` feature.