use CLOEXEC on inotify fd
Cleanup/debug/improve systemd and daemonization/logging

0) Removes the --with-systemd configure flag as well as any
possible dependency on systemd headers and/or libraries.
Basic systemd support is automatic and built-in for all
Linux builds.

1) Removes direct use of the systemd journal API.  The
systemd journal API just made things very complicated in the
logging code, and doesn't really accomplish anything better
than letting systemd capture vsyslog()/stderr output and
send that to the journal itself, so removing it seems like a
positive change.

1.5) Also, the above clears up a 2.0.0 bug where a daemon
built --with-systemd would not emit the expected syslog
output when run under another init system.

2) Removes the optional systemd watchdog support.  The
watchdog support also seemed like a pointless complication
all things considered: it's not really monitoring anything
that systemd can't tell for itself by knowing whether the
process has died or not.

3) Adds a gdnsd.service unit file which is templated for the
gdnsd binary location and installed on "make install" (if
applicable).  There is a new related configure option
--with-systemdsystemunitdir to override or suppress the
installation of it.

4) This commit changes the way we start/"daemonize" under
systemd.  The old model was Type=forking with gdnsd doing an
sd_notify() of the appropriate MAINPID.  The new model is to
use Type=notify, not actually daemonize (using -f in
ExecStart), and send READY=1 when the daemon is ready for
queries.  The supplied unit file takes care of these
details, so please use it!

5) All commands now always send all output to syslog by
default (except the initial "usage" output when the
commandline arguments are invalid).

6) A new commandline flag "-x" is added to suppress all
syslog output.  Only compatible with [re]start if "-f" is
also specified.

7) All commands now always send output to the terminal
consistently as well.  In the [re]start cases without "-f",
this ceases when the foreground-most process exits and the
new daemon is successfully running.  In all cases, stdout is
used for info/debug -level messages, and stderr is used for
warning and higher.

As a consequence of refactoring for the above and
reexamining the code in general, there are a several other
improvements to the daemonization/logging code in the
non-systemd case as well.  As noted in the NEWS update, the
stdio output behavior changes are probably relevant to most
initscript authors.

There are still some issues with the lifecycle of the extmon
plugin's helper process to be resolved in a further commit,
but they're not super critical.