Propagate socket timeouts to ChannelStream and SFTP.

This patch adds an option to specify the timeout for the socket underlying the SSH connection.  If a timeout occurs, it is propagated to any ChannelStreams and SFTP instances that are running over the connection.

I've encountered an environment in which these occur frequently, and this allows me to fail gracefully when data is no longer received or transmitted.