Fix GIT_MERGE_OPTS_INIT on MSVC.
Add option to limit blame to first parent
Add unit test
Document enumerator and rewording
Move system directory cache out of utils
Include stdarg.h for the va_copy test
Remove now-duplicated stdarg.h include
Merge pull request #2139 from ethomson/va_copy_warning

Include stdarg.h for the va_copy test
Merge pull request #2138 from ethomson/sysdir

Move system directory cache out of utils
- BUGFIX #2133 (@fourplusone) in smart_protocol.c
- added MSVC cmake definitions to disable warnings
- general.c is rewritten so it is ansi-c compatible and compiles ok on microsoft windows
- some MSVC reported warning fixes
- need_pack was not set to 0 when local fetch was already present causing  negotiate_fetch access violation
Reset num_parents to 1 only for merge commits

Also, correct test case to account for the boundary flag
Remove "ignore" state from the git.git-authors
Merge pull request #2142 from ethomson/ignore_authors

Remove "ignore" state from the git.git-authors
Merge pull request #2137 from jru/blame-first-parent

Blame first-parent history
Add project list and update readme
Do not allow git_branch_create() to force update branch
Fix warnings and code style issues
Add buffer to buffer diff and patch APIs

This adds `git_diff_buffers` and `git_patch_from_buffers`.  This
also includes a bunch of internal refactoring to increase the
shared code between these functions and the blob-to-blob and
blob-to-buffer APIs, as well as some higher level assert helpers
in the tests to also remove redundancy.
Merge pull request #2146 from libgit2/rb/diff-b2b

Add git_diff_buffers and git_patch_from_buffers