Adjust to libgit2 dup changes
Adjust to reference creation signatures
Blame: orig_ is now filled
Adjust to the git_buf changes

We no longer need the max-path define, so we can get rid of that and the
pypy checking.
Adjust to oid -> id renaming
Adjust to option struct naming change
Adjust to the merge changes

There is no more MergeResult type. Instead, the user can use
Repository.merge_analysis() to get an overview of their options and call
git_merge() when they mean to merge.

The git_merge() function now also performs a checkout.
Adjust to options changes

We can now use a git_buf to extract the search path.
Merge remote-tracking branch 'upstream/master' into development

Reconcile the changes between the ffi changes upstream with the changes
to libgit2 in the dev branch.

Conflicts:
	src/config.c
	src/options.c
	src/refspec.c
	src/remote.c
Wrap config snapshot functions

These allow complex reads to come from the same version of the config.
Update to latest libgit2
Merge remote-tracking branch 'upstream/master' into development

Conflicts:
	pygit2/decl.h
	test/test_repository.py
Adjust to clone_into signature change
Bump required libgit2 version to 0.21
Remote: make renaming take a method call

Renaming a remote in pygit2 has been done via Remote.name= up to now,
but this is inherently unsafe, as it provides no way to pass up the
refspecs that libgit2 was unable to remap.

In fact, if there ever was such problem, we would have segfaulted.

libgit2 now provides a much more direct way of getting back the results,
so expose it as the return value of Remote.rename(). This also removes
the hint that a rename might be something that happens only to the
in-memory structure.
travis: test 3.4 too
Merge remote-tracking branch 'michaeljones/documentation'
Merge remote-tracking branch 'carlos/development'
C coding style: remove tabs
Check errors returned by git_signature_dup