travis: test 3.4 too
Correct LIBGIT2_VERSION name and add documentation

LIBGIT2_VERSION was previously recorded as LIBGIT2_VER_VERSION which is
incorrect.

We also add basic explanations to all the constants so that the page is
a little less bare. Perhaps this should be done as autodoc style
comments in the code but I guess not.
Provide a doc example for discover_repository

To clarify the behaviour and usage.
Explain that reference targets are writable

It might seem like a really obvious point to make but without
emphasizing it, it isn't completely clear. I would like to mention this
in the Branch section as well for how to point a branch at another
commit but I can't see how to smoothly slide it in.
Fix spelling typo
Provide example for Reference.log_append

I would have found this useful when trying to do reflog additions. It
might not be massively complex but examples always help.
Merge remote-tracking branch 'michaeljones/documentation'
Merge remote-tracking branch 'carlos/development'
C coding style: remove tabs
Check errors returned by git_signature_dup
Index: add a setter for workdir
support setting a detatched HEAD
Fix docstrings for Blob.diff & diff_to_buffer

They were both missing a closing parenthesis which stop Sphinx from
interpreting and formatting them properly.
Improve diff & diff_to_buffer doc formatting

We switch to a parameter list for both functions and add a return type.
We also remove the indentation from the second line of the explanation
which was causing Sphinx to return it as two lines instead of one
continuous one.

We also added return types.

I am not sure of the type of the GIT_DIFF* flags so I have not included
that.
Merge remote-tracking branch 'michaeljones/documentation'
Get ready to release 0.21.0
README, tell to install cffi first
travis: download a tag instead of master

libgit2's development now happens on the master branch, which means we
can't use it to refer to the latest release. Download v0.21.0 explicitly
instead.
Tweak include/lib dir detection in ffi.py

Joint work with @carlosmn
branch: correct notion of remote-tracking branch and upstream

The current documentation text seems to be very confused about what a
remote-tracking branch is and what the relationship to an upstream is.

Correct the text to talk about the upstream branch when dealing with the
upstream configuration, instead of implying that it's related to the
setup of remote-tracking branches.