MINOR: remove a warning about an unused variable

httpterm.c: In function 'cfg_parse_listen':
httpterm.c:3412:6: warning: variable 'do_check' set but not used [-Wunused-but-set-variable]
MEDIUM: use MSG_MORE on send()

It was only set on splice() unfortunately.
OPTIM: try to read the request immediately

Doing so reduces the number of calls to epoll_ctl() from 2 to 1
per session.
OPTIM: try to start sending the response before polling

This completely eliminates the need for epoll_ctl() on short responses,
increasing the overall performance by about 1%.
OPTIM: add support for accept4()

This one saves one call to fcntl().
MINOR: add support for option "S={0|1}" in the request

This option is used to enable/disable splicing. This helps deebugging
strange cases such as splice() doing lower perf than send().
MINOR: add support for 'R={0|1}' to send random data

This is useful for testing compression.
MINOR: add support for draining pending POST data

This avoids sending a reset when the client uploads some data, though
the amount of data still needs to remain low enough to fit in a single
read.
MEDIUM: add support for sending responses in pieces (p=1)

Passing "p=1" in the request will cause the response to be sent in
pieces of random size spaced with random delays. The purpose is to
try to reproduce timing-dependant issues.
BUG: chunks: chunked encoding requires a trailing CRLF

Curl was not happy with the missing CRLF at the end.