A C++ IOStream-based replacement for popen(), allowing I/O on all of the child process' stdin, stdout and stderr.