deal with waitpid being called outside of P::FM

Without this patch, the fork manager will wait
forever for its child if different a `waitpid -1, *`
reaped it. The best I could do to fix that situation is
to turn the blocking call to `waitpid` into a loop that
check for the status of all children (and only our children)
every second.

Two things you might want to do:

1. make the pulling delay configurable.

2. if you're loath to change the core of P::FM into a loop,
I can change the patch such that we kepe the current default
behavior, and adopt the new behavior only if explicitly specified
(so, say, via a `set_careful()` method)