Wait for all transitive child processes to exit

This fixes #56 by blocking faketime's exit on a read from a pipe whose write end is inherited by all child processes. In the process, I also fixed the fact that the pipe being used to calculate time in the absence of the -f option was being leaked into child processes' fd tables.