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
cmake examples change so that general.c is off by default
caps: Rename to features to avoid confusion
caps: Rename the enum name too!
features: Rename `_HAS_` to `_FEATURE_`
Merge pull request #2150 from libgit2/vmg/features

caps: Rename to features to avoid confusion
Fix the description for `GIT_FEATURE_SSH`.
Merge pull request #2151 from arthurschreiber/patch-3

Fix the description for `GIT_FEATURE_SSH`.
- examples CMakeLists.txt reverted to previous state
Merge pull request #2141 from ravselj/development

BUGFIX - Fetching twice from the same remote causes a segfault
Added a test, that fails for #2133