Add a GTCred wrapper.
Merge remote-tracking branch 'origin/master' into git-cred

Conflicts:
	External/Configuration
	External/libgit2
	External/openssl
Rename `GTCred` => `GTCredential`.
Add GTCredentialProvider class + documentation.
Merge branch 'master' into git-cred
One line `userInfo` creation.
Update as per `libgit2` documentation.

This takes paths to key files, not actual key data.
Small documentation fixes.
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.
Merge branch 'master' into git-cred
Use `NSURL` for files.
Remove unused property.
`assign` => `copy`.
Tab-indent.
Oops.
Merge branch 'master' into git-cred
Remove 3rd authentication method.
Merge branch 'master' into git-cred

Conflicts:
	Classes/Categories/NSError+Git.m
Move `-DGIT_SSH` at the project level.