Implement the 3rd method.

That `GIT_SSH` define is needed in the project to make both `LIBSSH_SESSION` and the correct typedef for `git_cred_sign_callback` visible.

I do think it's a quirk of libgit2 though...
Allow passing a GTCredentialProvider when cloning.