Separate turbo run.go code into separate files (#2719)
- Move Graph, Dry, and Real Runs into separate files and associated code
with them.
- Move RunSpec and RunOpts things into separate file.
This refactor makes it possible to operate on dry and real runs
consistently. This generally improves readability also.
* Remove unused `dotGraph` field, caught by lint