chore(visitor): break up visitor to multiple modules (#9306)
### Description
This is a prefactor to break up `visitor.rs` into multiple files. This
is primarily just moving code around, but there are a few more in depth
changes:
-
https://github.com/vercel/turborepo/commit/2873556750540878056509a019fd2f601cac9f64
changes `TaskWarning` to only be constructed if there are missing envs,
removing the need to check later on
-
https://github.com/vercel/turborepo/commit/88e98c5422a869768e9a860031b828c95aa5fd4a
changes so we no longer call `which` for every task to find the package
manager binary. We instead call this on construction, but will only
handle the error case on actual command creation.
I highly recommend reviewing each commit on it's own. All commits that
move code do only that so hopefully that makes it easier to review.
### Testing Instructions
Integration tests and some basic manual testing.