Move waitpid handling to kernel.

ptrace on kernel version 2.5.46 (the minimum we support now) correctly
handles the process hierarchy.

This also fixes a bug where children would never be reaped (because only the
actual process parent can reap the child). The old ptrace API (PTRACE_TRACEME
and CLONE_PTRACE) had the nasty side-effect of the tracer reaping children.
Instead, using PTRACE_ATTACH and PTRACE_O_TRACECLONE means that tracee parents
must appropriately reap their children. Parrot can no longer do it itself. [In
any case, we don't want to implement process waiting for tracees anyway since
it has historically been very bug-prone.]

Fixes #503.
sort headers
minor formatting