Modify process handling.

Create list of child processes and wait until one finishes. Then
terminate the others and quit with the exit status of the first one.
Due to problems related to System.Process' interpretation of "&", output
redirection is done over Unix domain sockets.