libstd/sys/unix/process.rs: reap a zombie who didn't get through to exec(2).

Also add several sanity checks.  They shouldn't make any noticeable
impact to runtime performance.

The new test case in libstd/io/process.rs calls the ps command to check
if it can really reap its zombies.
The output of "ps -A -o pid,sid,command" should look like this:

  PID   SID COMMAND
    1     1 /sbin/init
    2     0 [kthreadd]
    3     0 [ksoftirqd/0]
...
12562  9237 ./spawn-failure
12563  9237 [spawn-failure] <defunct>
12564  9237 [spawn-failure] <defunct>
...
12592  9237 [spawn-failure] <defunct>
12593  9237 ps -A -o pid,sid,command
12884 12884 /bin/zsh
12922 12922 /bin/zsh
...

where ./spawn-failure is my test program which intentionally leaves many
zombies.  Filtering the output with the "SID" (session ID) column is
a quick way to tell if a process (zombie) was spawned by my own test
program.  Then the number of "defunct" lines is the number of zombie
children.

Signed-off-by: NODA, Kai <nodakai@gmail.com>