Fix noit watchdog.

The watchdog approach was a mess.  It is now documented in a state
diagram in the comments and the implementation *should* match that
diagram.  Using signals to notify the monitor process was removed
as it did not work when privilege separation was used.

Add a feature for debugging the monitor process in the foreground.
If -D -D (twice) is specified on the command line, the monitor
process is placed in the foreground with std{in,out,err} still open
and the child process operated fully managed.

This should prevent the critical issue that the monitor process would
SIGKILL a child process that tool longer than the watchdog timeout
to core dump.