Introduce git_merge_file for consumers
Add `git_merge_status` to provide info about an upcoming merge
Remove fastforward / uptodate from `git_merge`
Change signature of `git_merge` to take merge and checkout opts
Update git_merge_tree_opts to git_merge_options
Remove `git_merge_result` as it's now unnecessary
git_merge_status -> git_merge_analysis
Introduce GIT_MERGE_ANALYSIS_UNBORN
UNBORN implies FAST_FORWARD
settings: use git_buf for returning strings

This survived the last round of culling, as the signature is only in the
comments.
opts: bits are not bytes

The default cache size is 256 megabytes, not megabits as claimed in the
docs.
Merge pull request #2200 from libgit2/cmn/opts-buf

settings: use git_buf for returning strings
Merge pull request #2183 from ethomson/merge_refactor

Refactor the `git_merge` API
env test needs to deref git_buf's ptr
Merge pull request #2201 from ethomson/gitbuf_test_fix

env test needs to deref git_buf's ptr
Callback to hide commits in revision walker.
Unit Tests for hide_cb in revwalk
Remove unused push_cb_data
Conforming to libgit2 coding style.
Undoing local change done for building on x64