refactor: Make `Run::run` take a ref (#7946)
### Description
With watch mode, we want to be able to re-use a `Run` instance between
the different executions. We couldn't do this before since `Run::run`
would move the struct, but now we have it take a ref.
This does require putting the package inputs hashing into `Run::run`
instead of in the builder, but I think that's a better fit anyways. This
also pulls out analytics from the `Run` struct but that will also be
useful for watch mode, since we want to re-use the same analytics
handle.
### Testing Instructions
<!--
Give a quick description of steps to test your changes.
-->
Closes TURBO-2779