Update comment about AIX and WCOREDUMP

I just confirmed that this still applies to AIX 6.1, so I may as
well note that.
Don't test for NULL before calling free

free(NULL) has been supported everywhere for years.  Just pass
possibly-NULL pointers directly to free and let it cope.
Be more careful about file descriptors in child processes

When running test programs from a list, reopen standard input for each
program to /dev/null, and be more careful about closing all duplicates
of file descriptors left behind after setting up standard output and
standard error so that extraneous file descriptors aren't leaked to
the child process.