Squashed 'deps/libgit2/' changes from c5cacc4..bfc50f8

bfc50f8 Merge pull request #2273 from jacquesg/ssh-interactive
7b0f8ba Merge pull request #2279 from libgit2/rb/moar-eegnöre-fîxés
ac16bd0 Minor fixes
916fcbd Fix ignore difference from git with trailing /*
e3a2a04 Preload attribute files that may contain macros
a622ff1 Only zero sensitive information on destruction (and memory actually allocated by us)
50e46d6 Cleanup tests with helper functions
6a0956e Pop ignore only if whole relative path matches
386777f Merge pull request #2213 from ethomson/safecrlf
043112d Replace void * with proper callback types
8ec0a55 Make git_cred_ssh_custom_new() naming more consistent
478408c Introduce git_cred_ssh_interactive_new()
3c69beb Merge pull request #2274 from libgit2/cmn/ssh-expect-username
bd270b7 cred: tighten username rules
28fd720 Merge pull request #2108 from libgit2/rb/threadsafe-index-iterator
2bed355 cherry-pick: terminate the commit id string
8303827 Some memory leak fixes
823c0e9 Fix broken logic for attr cache invalidation
e6e8530 Lock attribute file while reparsing data
ea642d6 Fix race checking for existing index items
2e9d813 Fix tests with new attr cache code
7d49087 Attribute file cache refactor
1fa17b5 Minor tree cache speedups
aba6b5e Fix leak in git_index_conflict_cleanup
cef170a Fix leak when using push and pop with ignores
b877761 Fix refcount issues with mutex protected ignores
3816deb Fix threading tests when threads disabled
52bb047 Clean up index snapshot function naming
8a2834d Index locking and entry allocation changes
40ed499 Add diff threading tests and attr file cache locks
3b4c401 Decouple index iterator sort from index
dac1604 Add mutex around index entries changes
54edbb9 Add index snapshot and use it for iterator
27e54bc Add public diff print helpers
3dbee45 Some index internals refactoring
c67fd4c Some vector utility tweaks
7be1caf Determine crlf safety by statistics, not literal reversibility
855c66d Introduce core.safecrlf handling

git-subtree-dir: deps/libgit2
git-subtree-split: bfc50f83f829afe52c10f615c4f7efa478a83098
Merge commit 'ad70c8754e68a10db8ae137b159ec0c9ec0f0590' into ssh-interactive
Raw.xs: Cleanup: Give methods static linkage
MakeMaker.pm: Do a better job of detecting libssh2

Ideally we want the use to be able to specify the location of the
library when running `perl Makefile.PL` if required.
MakeMaker.pm: Add new warnings flags introduced upstream for OS X
Cred.xs: Added SSH interactive authentication via sshinteractive()
Repository.xs: Make 'credentials' callback a member of 'callbacks' to bring it inline with docs
10-clone.t: Don't check all the states, just check that we had state transitions
Push.xs: Added missing update_tips() method
Changes: update
Repository.xs: merge_base() should fail if sv_isobject is false
Use a different counter for counting and iterating

Some values may be undefined, resulting in an infinite loop.
Repository.xs: Added is_head_detached()
Changes: update
Repository.xs: tree parameter to diff() may be undefined
Changes: update
Repository.xs: Cleanup
Reduce boilerplate
Diff.xs: Add find_similar()
Repository.pm: Fix typo in example