revparse_single: add support for non ascii paths (#207)
Release v0.18.0
Now Repository.head returns a reference (#203)

Now Repository.head behaves like libgit2's git_repository_head, it
returns the resolved reference. These two lines are equivalent:

  ref = repo.head
  ref = repo.lookup_reference('HEAD').resolve()

Before it returned a commit.
Merge branch 'master' into oid

Conflicts:
	test/test_repository.py
oid: now only accept Oid or hex, not raw

Every method that takes an oid has changed what it accepts.

Before it was (in both Python 2 and 3):

- An Oid object
- An hex oid, represented as a unicode string
- A raw oid, represented as a bytes string

Now the behaviour is different between Python 2 and 3.

Now in Python 2 we take:

- An Oid object
- An hex oid, represented as a bytes or unicode string

Now in Python 3 we take:

- An Oid object
- An hex oid, represented as a unicode string

We have dropt direct support for raw strings. To use a raw string first
build an Oid object: oid = Oid(raw=raw)

We have also dropt support for short raw oids. The Oid constructor takes
full oids, if passed short oids the behavior is undefined.
Make Oid hashable
Fix unit tests with Python 2.6
Fixed crashes in `Repository.create_remote` caused by missing `Py_INCREF()`
refactoring Repository_git_reference_symbolic_create
added basic diff example and fixed misleading doc
Merge remote-tracking branch 'jun/crash-in-create-remote'
Merge remote-tracking branch 'cholin/features/diff_docs'
Merge remote-tracking branch 'cholin/features/refactoring'
Sort list of authors by number of commits

As shown by "git shortlog -sn". So those who have done more are
more visible.
Merge branch 'master' into oid
docs: add a section about the Oid type