Turn on SO_KEEPALIVE on all TCP connections.

This will help in determining remote hang up of the connection for
situations where we still are not able to send any reply, but freeing
the session will reduce resource overhead (e.g. when staying on
waitinglists for extended periods).

On platforms that support it also add runtime parameters to control
the keep-alive packet settings through socket options. On platforms
that don't support these socket options, the values must be set system
wide.

The Varnish runtime parameters will only be applied when they are less
than the system default.
On return from waitinglist, do a poll() on the socket to see if the
client has closed the connection and gone away. If so, release the
session early.

Fixes: #1252