pdns: Kill all spawned processes

Pipe backend spawned processes can still be alive after the pdns_server-instance was killed.
If the children remain alive, sockets will not be released, and the pdns_server-instance can't be respawned.

To be sure that all the spawned processes are killed, we must kill by using the process GID.
To be able to do the soft reloads, pdns_server-instance is declared as process group lider.

Also, all forced kills must kill by GID, not by PID, so all the processes would properly die.

Signed-off-by: Igor Maravic <igor@spotify.com>
Signed-off-by: Alexey Lapitsky <alexey@spotify.com>
Clean up after DynListener crash

When DynListener crashes, kill all processes from his parent PGRP.

This way we'll certanly close the pdns.controlsocket (no more hanging pdns_control processes)
and we'll kill the processes that aren't managable via pdns_control any more.
Add timeout to pdns_control connect, send and recv calls

If any of the connect, send and recv calls are timedout, TimeoutException is thrown.
main loop catches that exception and returns code 2.
code 1 is returned for all other exceptions.

In init.d script we now have 3 states:
UP
DOWN
UNRESPONSIVE

If the pdns_server is unresponsive, it will be killed.
After that, script continues as usual.
Clean up after the pdns_server-instance

Make sure that all children are killed after the pdns_server-instance dies
PDNS should always be the leader of the process group

That way, we can properly kill all of it's subprocesses!
webserver: add URL router with support for <vars>
webserver: drop d_that
webserver: bundle all request data into class HttpRequest

Now, pathArgs could actually be used by handlers.
webserver: first batch of new API URLs

Note that return data is still in old format.
Import Aki Tuomi's yahttp
link in yahttp
switch to yahttp in auth

A bit more intrusive than needed, but now everybody has a HttpResponse
object.
Merge pull request #1096 from zeha/new-urls-auth

Rework webserver implementation in Auth
adopt any-to-tcp feature to the recursor. Based on a patch by Winfried Angele. Closes #836
move variable definitions up to allow goto
adapt udp-truncation-threshold flag to the recursor and document it
avoid uninitialised res variable; don't cache any-to-tcp TC responses; ignore EDNS bufsize on TCP; also apply udp-truncation-threshold to non-EDNS questions
remove useless cast; limit udp-truncation-threshold to 512 for non-EDNS UDP queries
fix CHAOS TXT registration for recursor (making version.bind work)
Fix docs for export-etc-hosts-search-suffix

Fixes #1097