feat: Hook up Run summary (#6282)
### Description
This PR:
- Adds collection of task execution summaries in the execution tracker.
This differs from Go where this was collected in a mutex guarded local
that was captured in the graph walk closure.
- Adds the `TaskSummaryFactory` which handles correctly filling out
`TaskSummary`s
- Split out `TaskSummary` and `SingleTaskSummary` as
`TaskId::strip_package` does not do what is desired and we want `String`
instead as well as other schema differences.
- Provide `tasks` for `RunSummary` and `SinglePackageRunSummary`
This PR does not:
- hook up Spaces. (Sending task information during execution will
require a slight refactor the deserves it's own PR)
- fix all of the serialization differences between Rust and Go
I want to get this merged before additional fixups as those can be done
in independent PRs now that we're populating dry runs/run summaries.
I suggest reviewing this PR commit-wise as each one should stand on it's
own.
### Testing Instructions
Note that integration tests were updated and now the `tasks` portion of
dry runs/run summaries are filled out and the number of tasks matches
between Rust/Go.
Closes TURBO-1535
---------
Co-authored-by: Chris Olszewski <Chris Olszewski>