ssh/*.c: Improve the docstrings format

* ssh/auth.c, ssh/channel-func.c, ssh/channel-type.c, ssh/key-func.c,
  ssh/key-type.c, ssh/log.c, ssh/message-func.c, ssh/message-type.c,
  ssh/server-func.c, ssh/session-type.c, ssh/version.c: Improve the
  docstrings format.
ssh/auth.c: Handle disconnected sessions

* ssh/auth.c (guile_ssh_userauth_public_key_x)
  (guile_ssh_userauth_public_key_auto_x)
  (guile_ssh_userauth_public_key_try, guile_ssh_userauth_agent_x)
  (guile_ssh_userauth_password_x, guile_ssh_userauth_none_x)
  (guile_ssh_userauth_get_list): Throw `guile-ssh-error' if the session
  is not connected.
* doc/api-auth.texi (Auth): Update.
* NEWS: Update.
ssh/auth.c: Throw `wrong-type-arg' instead of `guile-ssh-error'

* ssh/auth.c: Throw `wrong-type-arg' instead of `guile-ssh-error' if a
  disconnected session is passed as an argument to procedures in the
  module.
* ssh/session-type.h (GSSH_VALIDATE_CONNECTED_SESSION): New macro.
* doc/api-auth.texi (Auth): Update.
ssh/session-func.c: Handle disconnected sessions

* ssh/session-func.c (guile_ssh_get_protocol_version)
  (guile_ssh_authenticate_server, guile_ssh_get_server_public_key)
  (guile_ssh_write_known_host): Expect a connected session as an
  argument.  Throw `wrong-type-arg' if the session is not connected.
* tests/session.scm ("get-protocol-version"): Move with some changes
  to `tests/client-server.scm'.
* tests/client-server.scm ("get-protocol-version"): New TC.
* doc/api-sessions.texi (Sessions): Update.
* NEWS: Update.
ssh/session-func.c: Include missed `assert.h' header
TODO (Known Bugs): New section
doc/api-channels.texi (Channels): Add note on `channel-request-exec'

* doc/api-channels.texi (Channels): Add note that
  `channel-request-exec' can be used to execute only a single command on
  a channel.
tests/log.scm: Fix TS name
ssh/channel-type.c (_scm_to_channel_data): Handle freed channels

* ssh/channel-type.c (_scm_to_channel_data): Return NULL if the
  channel has been freed.
ssh/channel-type.h (GSSH_VALIDATE_CHANNEL_DATA): New macro

* ssh/channel-type.h (GSSH_VALIDATE_CHANNEL_DATA): New macro.
* ssh/channel-func.c (guile_ssh_channel_is_open_p): Return `#f' if the
  channel has been closed and freed.
  (guile_ssh_channel_is_eof_p, guile_ssh_channel_open_session): Throw an
  exeption if the channel has been closed and freed.
ssh/channel-type.h (GSSH_VALIDATE_OPEN_CHANNEL): New macro

* ssh/channel-type.h (GSSH_VALIDATE_OPEN_CHANNEL): New macro.
* ssh/channel-func.c (guile_ssh_channel_request_exec)
  (guile_ssh_channel_request_pty, guile_ssh_channel_request_shell)
  (guile_ssh_channel_request_env, guile_ssh_channel_set_pty_size_x)
  (guile_ssh_channel_set_stream_x, guile_ssh_channel_get_stream): Expect
  an open channel as an argument.
* doc/api-channels.texi (Channels): Update.
tests/client-server.scm: Improve TCs

* tests/client-server.scm: Improve TCs
  (spawn-server-thread, cancel-server-thread): Remove.
  (make-session-loop): Stop the loop when client disconnects.
  ("connect!, disconnect!", "get-protocol-version")
  ("authenticate-server, not-known", "authenticate-server, ok")
  ("get-public-key-hash", "userauth-none!, success")
  ("userauth-none!, denied", "userauth-none!, partial")
  ("userauth-password!, success", "userauth-password!, denied")
  ("userauth-password!, partial", "userauth-public-key!, success")
  ("userauth-get-list", "make-channel", "channel-open-session")
  ("channel-request-exec", "data transferring, string")
  ("data transferring, bytevector"): Start the server as a different
  process during the test.  Improve.
  (start-server/channel-test, make-session/channel-test)
  (start-server/dt-test, make-channel/dt-test): New procedures.
tests/server-client.scm: Improve TCs

* tests/server-client.scm: Improve TCs.
  (libssh-log-printer): New procedure.
  (make-session-for-test): Set known hosts file explicitly.
  (make-server-for-test): Set DSA key.  Change log verbosity level to
  `rare'.
  (test-assert-with-log): New macro.
  ("accept, key exchange", "server-message-get", "message-get-type"):
  Start the client as a different process during the test.  Improve.
tests/server-client.scm: Fix global variables names
tests/server-client.scm (clnmsg): Improve

* tests/server-client.scm: Remove extra	global variables.
  (clnmsg): Improve.
tests/server-client.scm (clnmsg): Fix a bug
tests/sssh-ssshd.scm: Use test `known_hosts' file

* examples/sssh.scm.in (*option-spec*): Add `known-hosts-file' option.
  (main): Handle it.
* tests/sssh-ssshd.scm: Fix a bug in the test suite: use test
  `known_hosts' file to make sure that it has no records.
  ("ssshd, start"): Add a delay to make sure that
  ssshd started.
  ("sssh, exec"): Improve.  Do cleanup at the end of the TC.
  (*sssh-cmd*): Set `knownhosts' file explicitly.
Merge branch 'master' into gc-bug-fix