Add debug output and fix comment.

Also print the number of connections in the connection cache when added
one, and not only when one is removed.
Don't make many connections when pipelining after a timeout.

There was still a problem left when there is a delay between to call to
connect() and the connection being established.

The bits.close bit is set by default upon construction of a connectdata
struct only to be reset (when the user specifically requests so)
after the connection is established. We can therefore not use that bit
to test if a connection timed out, because the close bit also set
before it even connects.

The result was that after a timeout new connections were made while
none of them had established a connection yet, something I didn't
notice while testing before because I was running the server and
client on localhost with immediate connection times.

This commit fixes this problem by using a new bit (timedout) that is FALSE
from the start and only it set when the connection actually times out.

As a result, also connections that are not established yet are found
now and 'reused', with the desired effect of still only using a single
active connection when there aren't any other reasons to create a new
connection.