feat: add ability to configure tasks as interactive (#7767)
### Description
This adds a new `"interactive"` field to task definitions which allows
users to interact with tasks when it is set to true.
A few notes on the feature:
- All persistent tasks automatically are interactive
- Interactive tasks cannot be cached since the interaction can (and
probably will) alter the task's execution. This could be done
automatically, but I chose to require that the task be explicitly marked
as `"cache": false` to reduce perceived magic.
- `turbo` will not attempt to run if any tasks in the graph are marked
as interactive and the experimental UI isn't being used
### Testing Instructions
Snapshot test for various validation errors.
Manual testing: no longer able to select tasks and interact with them
e.g. `turbo_dev build --filter=docs --force`
Closes TURBO-2656