Fix GIT_MERGE_OPTS_INIT on MSVC.
Add option to limit blame to first parent
Add unit test
Document enumerator and rewording
- 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
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
Merge pull request #2143 from libgit2/rb/projects

Add project list and update readme
Add unit test to show git_branch_create() fails if attempt to force create current branch
Merge pull request #2144 from linquize/branch-f-current

Do not allow git_branch_create() to force update branch
Merge remote-tracking branch 'remotes/upstream/development' into development
- general.c reverted to original( before pr state )
- CMakeLists.txt small fix