Merge pull request #2083 from arthurschreiber/arthur/add-git_commit_descendant_of

Add `git_commit_descendant_of`.
Don't strcmp a git_buf, strcmp its char *
Merge pull request #2086 from ethomson/fixup

Don't strcmp a git_buf, strcmp its char *
Add test for blob/tree name collisions in index
index: Compare with given len
index: Implement folder-file checks
More index collision tests
Give index_isrch the same semantics as index_srch

In case insensitive index mode, we would stop at a prefixed entry,
treating the provided search key length as a substring, not the
length of the string to match.
Two-phase index merging

When three-way merging indexes, we previously changed each path
as we read them, which would lead to us adding an index entry for
'foo', then removing an index entry for 'foo/file'.  With the new
index requirements, this is not allowed.  Removing entries in the
merged index, then adding them, resolves this.  In the previous
example, we now remove 'foo/file' before adding 'foo'.
Use relative path to set cmake module path

This has actually no effect on a "normal" build, but allows to use
libgit2 as a part of a larger project via CMake's ADD_SUBDIRECTORY()

Closes #2087
Cleanup FindIconv.cmake

Doesn't change anything. Just removes stuff that was probably missed
to remove when this was imported.
Find and use a MacPorts version of libiconv. Fixes #2017.

- Add correct -I, -L and -l flags
- Search for libiconv in /opt/local/[include|lib] before in the
  system path. See #2017 for details.
- Give splitted -L and -l arguments to pkg-config
Merge pull request #2088 from scunz/cmake_path

Fixing #2017 and #2087
We never search for libiconv via pkg-config

So we actually also never know that we can set a dependency on it in
pkg-config. Instead always give it the -L and -l options.
Merge pull request #2089 from scunz/cmake_path

We never search for libiconv via pkg-config
Some missing oid to id renames
Make submodule fetchRecurse match other options

This removes the fetchRecurse compiler warnings and makes the
behavior match the other submodule options (i.e. the in-memory
setting can be reset to the on-disk value).
Misc cleanups
Some fixes for Windows x64 warnings
Reorganize zstream API and fix wrap problems

There were some confusing issues mixing up the number of bytes
written to the zstream output buffer with the number of bytes
consumed from the zstream input.  This reorganizes the zstream
API and makes it easier to deflate an arbitrarily large input
while still using a fixed size output.