Implement the basic server functionality.

* src/server-func.c, src/server-func.h, src/server-main.c,
  src/server-type.c, src/server-type.h, src/server.scm: New files.
* src/Makefile.am: Add server related sources.
Implement the SSH message type.

* src/Makefile.am: Add message* files.
* src/server-func.c (guile_ssh_server_set_message_callback_x)
  (guile_ssh_server_message_get, callback): New procedures.
* src/server.scm (ssh:server-set-message-callback!)
  (ssh:server-message-get): Export.
* src/message-func.c, src/message-func.h, src/message-main.c,
  src/message-type.c, src/message-type.h, src/message.scm: New
  files.
Merge branch 'master' into ssh-server-api

Conflicts:
	ChangeLog
src/message*, src/server*: Remove "ssh:" prefix from procedures names.

* src/message-func.c, src/message-type.c, src/message.scm,
  src/server-func.c, src/server-type.c, src/server.scm: Remove "ssh:"
  prefix from procedures names.
Implement `guile_ssh_channel_write' procedure.

* src/channel-func.c (guile_ssh_channel_write): New procedure.
* src/channel.scm: Likewise.
Merge branch 'master' into ssh-server-api
Implement `message-channel-request-reply-success' procedure.

* src/message-func.c
  (guile_ssh_message_channel_request_reply_success): New procedure.
* src/message.scm (message-channel-request-reply-success): Export.
server-func.c (server-accept!): Improve.

* src/server-func.c (guile_ssh_server_accept_x): Rename to
  `guile_ssh_server_accept'.  Change Scheme name to `server-accept'.
  Change the function so it has no side effects.
* src/server-func.h: Update.
* src/server.scm: Export `server-accept'.
Rename `server-listen' to `server-listen!' because of side effects.

* src/server-func.c (guile_ssh_server_listen): Rename to
  `guile_ssh_server_listen_x' because of side effects.  Change Scheme
  name to `server-listen!'.
* src/server.scm: Rename `server-listen' to `server-listen!'.
Merge branch 'master' into ssh-server-api
message-func.c, server-func.c: Improve error handling.

* src/message-func.c (guile_ssh_message_reply_default)
  (guile_ssh_message_auth_reply_success)
  (guile_ssh_message_auth_reply_public_key_success)
  (guile_ssh_message_channel_request_reply_success)
  (guile_ssh_message_auth_set_methods_x): Throw an exception on
  error.  Make return value undefined.  Change the description.
* src/server-func.c (guile_ssh_server_set_x)
  (guile_ssh_server_listen_x, guile_ssh_server_handle_key_exchange):
  Likewise.
Merge branch 'master' into ssh-server-api
server.scm (make-server): Improve.

* src/server-type.c (guile_ssh_make_server): Change Scheme name to
  `%make-server'.
* src/server.scm (make-server): New procedure.
message-func.c (guile_ssh_message_auth_get_password): Fix the return type.

* src/message-func.c (guile_ssh_message_auth_get_password): Return
  a password as a string instead of a symbol.
src/server-func.c (set_option): Don't use TYPE macro.

* src/server-func.c (set_option): Don't use TYPE macro.
  (TYPE): Remove the macro.
src/server.scm: Use `server-set!' for setting blocking/nonblocking mode.

Unificate the way of server configuration: use `server-set!' to set
server to the blocking/nonblocking mode.

* src/server-func.c (set_option): Handle 'blocking-mode
  (guile_ssh_server_set_blocking_x): Remove procedure.
* src/server.scm (server-set-blocking!): Remove procedure.
  (make-server): Handle "blocking-mode" keyword.
src/server-func.c: Fix a comment.
src/server-func.c (guile_ssh_server_listen_x): Fix a typo.
src/message.scm (message-exec-get-command): New procedure.

* src/message-func.c (guile_ssh_message_exec_get_command): New
  procedure.
* src/message.scm (message-exec-get-command): Export.
Merge branch 'master' into ssh-server-api

Conflicts:
	ChangeLog