Add timeout for handshake completion. #62
This adds a mechanism for timing out a connection if the ssh handshake never completes.
When managing large fleets, we not-infrequently encounter cases where a host is alive enough to accept an SSH connection but not enough to accept commands. (I've seen this with failing disks, for example -- my hypothesis is enough of the ssh daemon is cached in memory, but the shell or other libraries can't be read.)
(Internal p4 CLN 5034409; patch approved for release via TT/0013249552)