bump libgit2 to 5b58d6
Remove low-level Rugged::Remote methods.

This drops `#connect`, `#connected?`, `#disconnect`, `#download` and
`#update_tips!` in favor of yet-to-be-implemented higher level methods.

Additionally, `#ls` now automatically handles connecting and
disconnecting the remote.
Implement `Remote#fetch` using `git_remote_fetch`.
Make `rugged__block_yield_splat` globally available.
Bring back the update_tips callback.
`rb_git_remote_ls` also has to call `git_remote_set_callbacks`.

This is to ensure that previously set callbacks get cleared correctly.
Only load the ivar content once.
Add the `transfer_progress` callback.
OCD.
Move and refactor the credential extraction code.
Credentials now respond to `#call` and just return themselves.
Add support for the credentials callback to Rugged::Remote methods.
Make argument checks more strict.
Refactor the `Repository#clone_at` code to reuse the Rugged::Remote implementation.
OCD.
Add SSH Agent Support.
Rename the Plaintext Credential to UserPassword.
Add a fetch helper method on Repository.
Refactor and simplify some of the credential extraction code.
Move push functionality from Repository to Remote.