Add support for SSH keyboard-interactive authentication

Sometimes (if you are not using i.e. github or gitolite) it may not be possible (or undesired) to add entries for a user's public key into the repository management system i.e. ```.ssh/authorized_keys``` and friends, but still require using an SSH transport.

This PR adds support for keyboard-interactive base authentication, where the user can provide a callback in order to get the password. So it is quite hard (maybe impossible) to write a test case for this that works everywhere. I've tested this by adding the support into the ```Git-Raw``` perl bindings.