Squashed 'deps/libgit2/' changes from 2b40390..71ba28e

71ba28e Merge pull request #2214 from ethomson/sandbox_config
e0d61c7 Sandbox configuration during test runs
10be94e Update clar to 587f88a
04d4d67 Merge pull request #2212 from libgit2/rb/submodule-use-after-free
dae8ba6 Fix memory leak of test repository object
acdc7cf Fix memory leak of submodule branch name
add8db0 Fix use-after-free in submodule reload
041fad4 Merge pull request #2210 from libgit2/rb/submodule-api-with-no-submodules
380f864 Fix error when submodule path and name differ
22df47c Fix segfault if gitmodules is invalid
f4afcaa Merge pull request #2209 from ethomson/cleanup
9cb99e8 Free temporary merge index
2b848e4 Decorate unused params as unused in revwalk::hidecb tests
dc7efa1 Merge pull request #2204 from libgit2/rb/submodule-reference-counting
77b699e Merge pull request #2205 from libgit2/rb/submodule-untracked-vs-ignored
fcbbe1b Merge pull request #2166 from ethomson/giterr_restore
1df8ad0 clone: don't overwrite original error message
f2f2d97 Test for giterr_capture
591e829 Fix submodule leaks and invalid references
d3bc95f Update behavior for untracked sub-repos
451aaf8 Merge pull request #2181 from anuraggup/hide_cb
a15c780 Make submodules externally refcounted
34ffe22 Modified test for revwalk_hidecb
892b7c9 Correcting format of comments in header file
169fb81 Undoing local change done for building on x64
7ca1584 Conforming to libgit2 coding style.
46e4d82 Remove unused push_cb_data
3a66607 Unit Tests for hide_cb in revwalk
892aa80 Callback to hide commits in revision walker.
f210cb5 Merge pull request #2201 from ethomson/gitbuf_test_fix
fdc54eb env test needs to deref git_buf's ptr
85a41fc Merge pull request #2183 from ethomson/merge_refactor
f57cc63 Merge pull request #2200 from libgit2/cmn/opts-buf
6057c4a opts: bits are not bytes
42dee8e settings: use git_buf for returning strings
0deb534 Merge pull request #2197 from linquize/assert-wrong
31a1498 Fix wrong assertion
36a80fd Merge pull request #2195 from libgit2/cmn/revwalk-no-hide
704b55c revwalk: don't try to find merge bases when there can be none
7d63357 Merge pull request #2194 from libgit2/cmn/reflog-bare
1c35165 reflog: remove some dead code
8350437 reflog: follow core.logallrefupdates
58c2b1c UNBORN implies FAST_FORWARD
ac584fc Introduce GIT_MERGE_ANALYSIS_UNBORN
97f3462 git_merge_status -> git_merge_analysis
d9fdee6 Remove `git_merge_result` as it's now unnecessary
5aa2ac6 Update git_merge_tree_opts to git_merge_options
02105a2 Change signature of `git_merge` to take merge and checkout opts
1c0b6a3 Remove fastforward / uptodate from `git_merge`
ccb3082 Add `git_merge_status` to provide info about an upcoming merge
05d4776 Introduce git_merge_file for consumers
f29e489 Merge pull request #2193 from libgit2/cmn/reflog-HEAD
99797c9 reflog: handle symref chains
6aaae94 reflog: handle the birth of a branch
afc57eb reflog: simplify the append logic
1afe140 refdb: don't update when there's no need
bac95e6 reflog: more comprehensive HEAD tests
5dd7d24 Merge pull request #2189 from Aimeast/octopus
0aee025 Implement git_merge_base_octopus
dd4c696 Merge pull request #2192 from phkelley/development
1392418 Seamless support for NTLM/Kerberos auth on Windows
a7af1f7 Merge pull request #2190 from libgit2/cmn/current-branch-reflog
dd5e74e Merge pull request #2191 from libgit2/cmn/projects
5c8096c Add a few projects to the list
4b7e1b9 refs: append to the HEAD reflog when updating the current branch
cb562c3 repo: remove test which deletes HEAD
853b140 branch: constness fixes

git-subtree-dir: deps/libgit2
git-subtree-split: 71ba28e3a55511eaac3b2924d8de147bdce60683
Merge commit '18eba54def8a7ef4e0df3f3e53196bb4298ec4c8' into update-merge-api
Raw.xs: Added additional checkout options
Repository.xs: Adjust merge API
Repository.xs: Added merge_base()
Tree.xs: Add merge()
Index.xs: Allow add() to take an Index::Entry object
Index.xs: Allow write_tree() to take a repository
Index.xs: Added additional Index methods

checkout()
entries()
add_conflict()
remove_conflict()
Index.xs: Index::Entry's should be tied to the repository, not the Index
Commit.xs: Cleanup
Commit.xs: Added merge()
Changes: update
minor doc fixes and formatting