feat: More errors work (#7408)
### Description
Improved error printing a little bit.
- Ported some engine/package graph errors around task dependencies.
Involved threading through span info into the engine. We have to be a
little careful to not hash `Span<TaskDefinition>` because sometimes the
tasks are equal, but the span info is *not*.
- Added a file name to the error output. Right now we only use error
output for turbo.json but eventually we might show errors in
package.json
### Testing Instructions
<!--
Give a quick description of steps to test your changes.
-->
Closes TURBO-2393