libceph: introduce con_fault_raise() and switch to it

In preparation for connect timeout abstract ceph_connection
fault-initiating logic into a separate function and start using it.

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
libceph: handle dead tcp connections during connection negotiation

Keepalive mechanism that we are currently using doesn't handle dead
(e.g. half-open in RFC 793 sense) TCP connections: a) it's based on
pending ceph_osd_requests which are not necessarily present, and b)
keepalive byte is only sent if connection is in CON_STATE_OPEN state
because of protocol restrictions.  This does not cover connection
handshake and negotiation stages and can lead to kernel client hanging
forever.  Fix it by forcibly resetting the connection if after two
mount_timeouts we still haven't transitioned to CON_STATE_OPEN.

Fixes: http://tracker.ceph.com/issues/7139

Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>