Don't try to merge binary files
Introduce diff3 mode for checking out conflicts
Load merge.conflictstyle setting from config
Remove the "merge none" flag

The "merge none" (don't automerge) flag was only to aide in
merge trivial tests.  We can easily determine whether merge
trivial resulted in a trivial merge or an automerge by examining
the REUC after automerge has completed.
Support union merges
Merge submodules
Merge pull request #2061 from ethomson/merge_improvements

Merge improvements
Expose patch serialization to git_buf

Returning library-allocated strings from libgit2 works fine on Linux,
but may cause problems on Windows because there is no one C Runtime that
everything links against. With libgit2 not exposing its own allocator,
freeing the string is a gamble.

git_patch_to_str already serializes to a buffer, then returns the
underlying memory. Expose the functionality directly, so callers can use
the git_buf_free function to free the memory later.
Drop git_patch_to_str

It's hard or even impossible to correctly free the string buffer
allocated by git_patch_to_str in some circumstances. Drop the function
so people have to use git_patch_to_buf instead - git_buf has a dedicated
destructor.
Merge pull request #2069 from isilkor/patch_to_buf

Expose patch serialization to git_buf
Preserve tree filemode in index during checkout

Don't try to determine whether the system supports file modes
when putting the tree data in the index during checkout.  The tree's
mode is canonical and did not come from stat(2) in the first place.
Merge pull request #2070 from ethomson/checkout_filemode

Preserve tree filemode in index during checkout
Summarize empty messages
Merge pull request #2072 from ethomson/commit_summary

Summarize empty messages
Plug a small memory leak
Sometimes a zero byte file is just a zero byte file

Don't go to the ODB to resolve zero byte files in the workdir
Merge pull request #2073 from ethomson/zerobytes

Sometimes a zero byte file is just a zero byte file
Drop parsing pack filename SHA1 part, no one cares the filename
Merge pull request #2074 from linquize/pack-filename-sha1

Drop parsing pack filename SHA1 part
note: rename the id getter to git_note_id()

This was left over when we did the general switch.