Merge branch 'release/0.7.4'
Moved running_session class to connection project.

This is the beginning of refactoring session management out of the provider code.
Remove running_session coersion to LIBSSH2_SESSION* etc.

This was pretty bad practice from the beginning.
Disconnect SSH sessions in the C++ wrapper before destroying them.
Moved ssh_error.

Moved out of namespace ssh:exception into namespace ssh.  It didn't warrant having its own namespace.

Renamed source file to ssh_error to match the class.
Removed last_error from non-detail namespace.

It should never have been in the public interface.  If a function encounters an error, it will throw an exception there and then; the caller doesn't need to query the last error.
Use the SSH C++ bindings inside running_session.

We were using raw LIBSSH2_SESSION* and LIBSSH2_SFTP.
Make authenticated sessions distinct from possibly-not-authenticated ones.
Merged session factory code into authenticated_session.
Make session classes movable.
Fixed memory leak in authenticated_session_tests.

The test passed a 'new'ed consumer directly to a ISftpConsumer*.  Doing that only works if passing to a com_ptr<ISftpConsumer>.  Changed authenticated_session to take the smart pointer.
Use libssh2 wrapper for password authentication.
Avoid duplicate "Password" message in password prompt.

Both the title of the dialog and the edit box label were "Password".  MS guidelines recommend not having messages in the title at all and just using the program name there.  This change does that by putting "Swish" as the dialog title and leaving the prompt as it is.
Fix deadlock during rename-with-overwrite.

Didn't release the previous lock before locking again whilst re-attempting the rename with overwriting.
Converted remaining non-auth network tests to use local test server.

The only remaining network tests that require a server set up in the TEST_* environment variables are password/kb-int authentication tests (because we can't do these with the local server) and stream tests (because the latency shows up useful bugs).
Use libssh2 wrapper for file-based public-key authentication.
Move code for list of available authentication methods to libssh2 wrapper.
Do keyboard-interactive authentication via libssh2 wrapper.
Revived long dead unit tests of kb-interactive dialog.
Handle userauth list fetching authenticating with "none" method.