SSH API Implementation

This isn't yet rebased, nor is it mergeable, it's just up for review and comments.
Yeah, those names look fine. This shouldn't change any of the known behaviour of the creds callback. It will be called some number of times with the type of data which the server/libgit2 can agree on.