Refactor to use dispatch_io for output aggregation

And wait for EOF before forwarding it to the ColdSignal subscriber.
Always flush Xcode log file after writing
Upcast dispatch_data_t to NSData
Merge remote-tracking branch 'origin/master' into fix-task-output-race
Merge branch 'master' into fix-task-output-race
Add custom Pipe class, to overhaul task launching

This allows us to maintain ownership over the pipe’s file descriptors,
so NSTask or NSFileHandle don’t prematurely close them.
WIP add writeDataFromSignal() for standardInput
Refactor launchTask() to use Pipe for stdin too
Merge branch 'master' into fix-task-output-race
Close both ends of the pipe on early disposal
@keithduncan staaaaaaahp (pointing out valid bugs)
Merge pull request #153 from Carthage/fix-task-output-race

Refactor to use dispatch_io for tasks, and wait for EOF