src/key-func.c: Add basic support of encrypted keys.

* examples/sssh.scm (main): Ask the user for a passphrase.
* src/key-func.c (guile_ssh_private_key_from_file): Change
  argument list: add optional argument `passphrase'.
src/auth.scm (userauth-autopubkey!): New procedure.

* src/auth.c (guile_ssh_userauth_autopubkey_x): New procedure.
* src/auth.scm (userauth-autopubkey!): Export.
examples/sssh.scm: Use `userauth-autopubkey!'.

* examples/sssh.scm (main): Use `userauth-autopubkey!' for
  authentication.
src/auth.c, src/auth.scm: Update copyright dates.
key-func.c (guile_ssh_private_key_from_file): Improve.

* src/key-func.c: Update copyright dates.
  (guile_ssh_private_key_from_file): Improve
  assertion of passphrase.  Improve docstring and comments.
src/key-func.c (guile_ssh_private_key_from_file): Rollback.

* src/key-func.c (guile_ssh_private_key_from_file): Rollback to
  the previous version of the procedure (which doesn't accept a
  passphrase as an argument) due to security considerations.  The
  problem is that the passphrase provided by the user will float
  around in (possibly swapped) memory unless it will be collected by
  the GC.

  Thanks to Ludovic Courtès <ludo@gnu.org> for pointing this out.

  Instead the user must use either a SSH agent (with
  `userauth-autopubkey!' procedure) or privide the passphrase
  interactively (the user will be asked for the passphrase by the
  underlying libssh procedure if the provided key is encrypted).

* src/auth.c (guile_ssh_userauth_autopubkey_x): Likewise.
NEWS: Update.
src/auth.h (guile_ssh_userauth_autopubkey_x): Export.