switch log_fatal() back to using abort() by default
pthread_sigmask nits

Technically it can fail, so check errors.  Also technically
due to poor standards wording, it may not be a good idea to
not initialize the output set, even though it makes little sense.
Refactor/Fix extmon child process handling.

There were basically two larger issues here:

1) The gdnsd_extmon_helper child process wasn't being
cleanly managed by the main daemon.  When the main daemon
chose to exit, it simply left it blowing in the wind and
re-parented to init, with the result that it would finish
its current round of monitoring, then happen to notice a
closed pipe to the main daemon and exit, letting init reap
its status.

2) Within gdnsd_extmon_helper, similar issues applied to the
handling of extant child processes defined by the user at
the time of shutdown, which were unceremoniously SIGKILLed
in a loop and then never reaped (so again, it was left to
the init daemon to clean up the mess).

Those aside, in general the process coordination in both
areas was a little shoddy and in some cases a little racy
with regards to signals.  It did "work" reliably in
practice, but this new way of doing things will hopefully
"work" in a much more clean and correct fashion.