Squashed 'deps/libgit2/' changes from fa44a16..46a13f3

46a13f3 Merge pull request #2481 from libgit2/cmn/oidarray
d99c8ca Merge pull request #2539 from libgit2/cmn/ahead-behind-order
05f0d0c graph: fix ahead-behind logic
e07aebb Fix ahead-behind tests
69db893 Merge pull request #2538 from libgit2/ntk/propagate_url_parsing_error
893cfe0 Merge pull request #2502 from rnowosielski/remote_set_timeout
1485c68 Merge pull request #2490 from csware/ssh-wintunnel
f0c53d2 winhttp: Prevent swallowing of url parsing error
0e5bb61 Added some tests
c13b684 Adjust clone tests to USERNAME cred type
15c7da3 Merge branch 'cmn/ssh-retry'
7449c82 Add ssh retry changes to CHANGELOG
6a0d2b4 Merge remote-tracking branch 'upstream/master' into cmn/ssh-retry
86d0a53 Set timeout on remote (WinHTTP) should return error in case of failure. Connection timeout set to 1 minute. Read/Write timeout remains set to infinite #2147
cb92467 Merge pull request #2537 from libgit2/reduce-cache-contention
6a211d7 Refactor git_cache to use an rwlock
00e9ae5 Merge pull request #2508 from libgit2/rb/fix-ignore-slash-star
cd0c4fa Merge pull request #2533 from jakebolewski/jcb/addjulia
397bc8d Merge pull request #2535 from libgit2/cmn/unpack-offset
34e510c Allow to override default ssh transport_cb
b3d3459 pack: return the correct final offset
d747ec1 add Julia to the language bindings list
844d226 Merge pull request #2532 from arthurschreiber/arthur/fix-merge-base-commit-check
017c0ea merge base: Correctly raise an error if a non-commit object is passed.
5af52c6 Merge pull request #2531 from libgit2/rb/mkdir-allow-parent-failures
2c1de69 Merge pull request #2527 from jacquesg/refspec-crash
2db7119 Set timeout on remote (WinHTTP) to infinite #2147
668ae2d Allow mkdir helper to skip parent errors
8f6073f Check that the refspec matches before modifying the out buffer
d28b2b7 Merge pull request #2528 from libgit2/vmg/tostr_s
43ebca8 Revert "test: Remove symlinks from the source tree"
0dc54e1 test: Remove symlinks from the source tree
4ca0b56 oid: Export `git_oid_tostr_s` instead of `_allocfmt`
414dbe9 Merge pull request #2525 from libgit2/cmn/http-recv-buffer
1a85eca Merge pull request #2523 from leighlondon/remove-completed-project
4e53c28 Check if the refspec matches before transforming
294c6f2 http: make sure we can consume the data we request
1f2f611 Removing a completed starter project.
bbe1380 Demonstrate a trailing slash failure.
a0cacc8 For negative matches, always use leading dir match
aa5cdf6 status: failing test with slash-star
f25bc0b Fix rejection of parent dir of negated ignores
7db0e6e merge: expose multiple merge bases
8733993 travis: enable password authentication on OSX
e26b08d ssh: adjust clone and push test credentials to the split user+pass method
ccb85c8 ssh: make sure to ask for a username and use the same one
d1c281a cred: add convenience function to get the username
54da695 cred: introduce username-only cred
d7f962f ssh: request credentials again on authentication failure
8873728 Introduce GIT_EAUTH
b529c5f ssh: propagate the error code from the auth callback
2261890 ssh: detect authentication methods

git-subtree-dir: deps/libgit2
git-subtree-split: 46a13f32472741f0ed66db7cb75c8cff279886ad
Merge commit 'f2123f85e5486bb58ccb1fe1f40519af656ebaef'
Changes: update
Walker.xs: Added sorting() method
Changes: update
Index.xs: return a Tree object from write_tree()
Changes: update
Commit.pm: Added amend() convenience
Provide stringify and string equality overloads
Repository.xs: Let merge_base() return a commit object
Changes: update
Index/Conflict.xs: Use a real object to represent conflicts
Index/Entry.xs: Added blob()
Changes: update
Actually pash parameters to 'ne' overload
Graph.xs: Added ahead_behind()
Changes: update
Graph.xs: Added ahead() and behind()
Changes: update
Repository.xs: WIP: Added revparse()