Prepend the vendored libgit2 build dir to the $DEFLIBPATH.

By default, $DEFLIBPATH includes $(libpath), which usually points
to something like /usr/lib for system ruby versions (not those
installed through rbenv or rvm).

This was causing system-wide libgit2 installations to be preferred
over of our vendored libgit2 version when building rugged.

By putting the path to the vendored libgit2 library at the front of
$DEFLIBPATH, we can ensure that our bundled version is always used.
Merge pull request #357 from libgit2/arthur/fix-extconf-with-system-libgit2

Prepend the vendored libgit2 build dir to the $DEFLIBPATH.
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.