Refactor Summary structs for more flexible use (#2792)
This massages our data flow to put `RunState` and
`DryRunSummary` closer together. Together, these will eventually
form the RunSummary data structure that will contain all the data users
need to debug `turbo run`. Making these two pieces of data work well
together will be the key to standardizing the data we have from runs.