Fix GIT_MERGE_OPTS_INIT on MSVC.
Add exists_prefix to ODB backend and ODB API
Add git_object_short_id API to get short id string

This finds a short id string that will unambiguously select the
given object, starting with the core.abbrev length (usually 7)
and growing until it is no longer ambiguous.
Add the --shortstat flag to examples/diff.c
fix the output format of diff
Fix typo
Add tag example
Move all variable declarations to the top of the block
ODB writing fails gracefully when unsupported

If no ODB backends support writing, we should fail gracefully.
refdb: catch a directory disappearing

If a directory disappears between the time we look up the entries of its
parent and the time when we go to look at it, we should ignore the error
and move forward.

This fixes #2046.
Merge pull request #2163 from ethomson/nobackend_odb_write

ODB writing fails gracefully when unsupported
Merge pull request #2164 from libgit2/cmn/refs-delete-iteration

refdb: catch a directory disappearing
Check short OID len in odb, not in backends
Merge pull request #2159 from libgit2/rb/odb-exists-prefix

Add ODB API to check for existence by prefix and object id shortener
Added function-based initializers for every options struct.

The basic structure of each function is courtesy of arrbee.
Merge completed: resolve the conflict with the upstream
Merge pull request #2162 from sunheehnus/dev

examples/diff:Add the shortstat flag to examples/diff.c
Merge pull request #2014 from mgbowen/cpp-options-init

Function-based options initializers
Merge pull request #1997 from mgbowen/merge-options-init-fix

Fix GIT_MERGE_OPTS_INIT on MSVC.
Revert pull request #1997