use new threads rather than thread pool

This is not as lightweight as using a pool, but has an advantage of
resulting to more simple code.  Also when each socket is served by an
individual thread it is rather difficult to DoS this service.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
make systemd socket activation to work

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
do not timeout listen sockets

If setsockopt(..., SO_RCVTIMEO, ...) is set before accept() the socket
will timeout causing accept() block to break resulting to an unnecessary
thread creation with an errornous client socket handling.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>