Socket leak fix in call-collect.

When the client's cf-serverd decides not to wait for the hub's queue
to die down, logging that decision is not enough: it needs to actually
close the socket and not fall through into the code that delivers the
report.  ConnectionInfoNew() can't fail, so testing for that was dumb
(and, if it'd made any sense, should have had an else clause to close
the socket).  Added some pertinent assertions.
Make SV.logconns actually mean something.

It controls logging of reporting of connections to the server: if it's
set, we log them - otherwise, we log them - in each case at the info
level.  I decided that we could at least have it control the logging
level used: when it's not set I've downgraded the logging level to
verbose.
Avoid needing to cast a pthread_create()'s function.

Change cf-serverd/server.c's HandleConnection to take a void* and
internally read it as a ServerConnectionState *, so as to avoid a
complicated and ugly cast.
Petty clean-up in serverd's server code.

I had to read it in order to make sense of what's going on with
call-collect; and reading can be made easier by making the code
cleaner !  Some long lines split, some comparisons to boolean reworked
to use booleans as booleans, some TODO in empty blocks, flipped a
conditional to put its simpler branch first, moved an assignment
within condition to a simple initializer for its variable.
Described a possibly better way of limiting how many threads we have.
Fixed a compiler warning, matching argument type to format specifier.