In particular, don't require to call an externally defined function to
find if in --verbose mode or not. Now it's just an extern bool.
I'm confident the performance impact of not using -DNLOGDEBUG should be
negligible now.
This comes with a small incompatible API+ABI change, but that shouldn't
matter as we've had a couple of those already since the last release.

This reverts commit 64f80706.
TL;DR: it brought almost no benefits AFAIK and potential for problems.
The "portable bytecode" produced by luajit isn't compatible when
(lib)luajit version changes or when some build-time configuration of it
changes. If you mix these up, kresd fails to start.

It seems a bit cleaner, though impact on size and load speed should not
be noticeable. We simply install most of the lua code, as before, and I
assume that we *do* want to keep that visibility, at least by default.
Suggested on !57.

and set libknot_SONAME and libzscanner_SONAME as lua literals.
Remove now obsolete libpath lua function - use find_soname from
platform.mk to define <arg>_SONAME, add lua_pushliteral to
daemon/engine.c and add -D to daemon/daemon.mk for any new library
loaded from Lua.

forks are connected with IPC pipes to process
group leader and can execute expressions on its
behalf. so running commands over all workers
is easy now:
> hostname() -- single
localhost
> map 'hostname()' -- all
localhost
localhost
localhost

this allows embedding other event loops or just
asynchronous events triggered by socket activity.
this is required for things like cooperative
HTTP server, monitoring endpoint or remote
configuration daemon/controller

this change introduces new API for cache backends,
that is a subset of knot_db_api_t from libknot
with several cache-specific operations
major changes are:
* merged 'cachectl' module into 'cache' as it is
99% default-on and it simplifies things
* not transaction oriented, transactions may be
reused and cached for higher performance
* scatter/gather API, this is important for
latency and performance of non-local backends
like Redis
* faster and reliable cache clearing
* cache-specific operations (prefix scan, ...) in
the API not hacked in
* simpler code for both backends and caller

an internal timer walks RTT timer periodically and
clears entries with bad results every 5 minutes.
this means that a timeouted entry penalty is
capped to that interval, making sure that the
bad reputation doesn't last forever