chore(signals): prefactor (#9995)
### Description
Prefactors:
- moved signal listening to own crate
- return signal received to subscribers
- support streams instead of single futures for signal sources
PR that prefactors the signals code to prepare for:
- Subscribers getting all signals sent to `turbo`
- Additional signal handlers to be sent transparently to children
There are no behavior changes in this PR. I highly suggest reviewing
each commit on its own.
### Testing Instructions
Existing unit tests.
Quick manual verification that existing `SIGINT` behavior remains the
same:
```
$ turbo_dev watch build
...
│ Finalizing page optimization . Collecting build traces .
└────>
× Watch interrupted due to signal
```