make the child reap itself before it exits.

This seems to fix a bug I was seeing when running with _MALLOC_PERTURB set.
The symptoms looked like a use-after-free in the child struct,
which is puzzling as they are allocated during startup and never freed
until we exit.  I don't fully understand it, but this is a nice
code cleanup while also making the problem disappear.