Split debug messages into developer and normal

In general, -DNDEBUG builds are considered "normal" while
those lacking -DNDEBUG are "developer" builds with a ton
of extra assertions, validations, debug output, and general
slowdowns.

Previously, log_debug() was suppressed (at compile time) for
normal builds and only emitted in developer builds.

This patch splits debug output into two functions:
log_debug(): emits debug output if the runtime debug config
  is set (-D commandline argument), regardless of build
log_devdebug(): is only included in developer builds, as was
  the case with log_debug() previously.

log_debug() statements in hot areas (dnsio_tcp, dnspacket) were
converted to log_devdebug(), while the rest remain log_debug().
testsuite: split daemon setup from execution

This allows tests that need to manipulate config/state-files
to do so between the initial wipe+setup of the test directory
structure and the actual daemon's launch.
testsuite: add write_statefile helper, use in 020admin
plugin_extfile: move statefile to statedir
plugin_extfile: actually start the runtime watchers
plugin_extfile: better testing (incl direct runtime update)