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
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
Merge pull request #2165 from libgit2/revert-1997

Revert pull request #1997
tests: MSVC compat

MSVC doesn't like declaring variables in the middle of a block, so make
sure we only declare variables at the beginning of a block.