feat(process): differentiate between child interruption and killing (#10027)
### Description
This is primarily a code move of the `ProcessManager` out of the
`turborepo-lib` crate. We also now differ between a child shutting down
in response to a `SIGINT` vs us killing the child.
Future PR will be changing how we treat each of these exit outcomes.
### Testing Instructions
Existing unit tests 👀