Keep track of persisted ban byte usage, and it's fragmentation.
Fix the length recorded for truncated bans (it should be the length of
the header, not 0).

Add a test case for reload of truncated bans.

Fixes: #1266
Mark the ban_magic as gone also in the persisted ban spec, so it can
be recognized as such on reload
Honor the persisted GONE flag on reload of bans, and keep the
duplicate counters consistent on reloads.

Add a test case for this.

Add a section on bans and offline silos in the docs.
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