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.
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.