Import Pound-2.7c
Do not return NULL data from get_thr_arg

get_thr_arg() always waits for non-NULL argument. It prevents "NULL
get_thr_arg" log message.
Flush the headers to the backend as soon as they are received

No need to wait and backend can process them as we read body potentially
slightly increasing performance. Also, if this is a new connection and backend
has aggressive first-byte timeout (such as Varnish in default configuration),
this will prevent the backend from time-ing out when a client has a long delay
between headers and body (as is customary for busy Internet Exporer <= 8).
Remove Grace period option, wait for all worker threads to finish

When worker is required to shut down (by SIGHUP/SIGINT), it waits for all busy
threads to finish. Number of running threads is monitored every 10 seconds.
During the shutdown, control socket is temporary renamed (pid is appended to
the socket name), so that it is still accessible and correct socket is removed
on exit.
Allow to reload configuration on SIGHUP/SIGINT without service outage

When SIGHUP/SIGINT is received, signal old child to shut down, reload
configuration and fork a new child while reusing opened listeners (if
possible). Configuration reload only works when pound is configured with
--enable-super option. Supervisor also keeps track of all running children and
kill them when signaled with SIGTERM/SIGQUIT.
copy_chunks: Signal an error if a terminating chunk is missing

This means that the client disconnected abruptly, without completing the
request. If we proceed waiting for reply from backend without ever completing
the request we'll just wait forever.

Note that this has some security implications as it provides a way for the
client to hit and run, wasting a backend connection while disconnecting his one
(which leads to denial of service).