feat: add method for piping child output to writer (#6031)
### Description
In order to capture task output we need to pipe it to our own writer
implementations. Since we want to stream the outputs we can't use
`wait_with_outputs` as that requires waiting for a process to finish
execution before we get the outputs.
### Testing Instructions
Added unit test to verify that the writers end up with the data that
should be written to stdout.
Closes TURBO-1362
Co-authored-by: Chris Olszewski <Chris Olszewski>