Add Oid type
Return Oid wherever we returned raw oid (bytes) before

Changes:

- Return Oid wherever we returned raw oid (bytes) before
- Now py_str_to_git_oid accepts Oid objects
- Add ability to compare two Oid objects
Fix for Python3, and add Oid cmp tests
oid: support rich comparisons (less than, etc.)
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
Merge branch 'master' into oid
docs: add a section about the Oid type
Now Note.oid returns an Oid object, not an hex
Now Reference.target returns an Oid, not hex

If the reference is direct, of course.
The repository iterator now returns Oids, not hexs
Python 2: Return a byte string for hex oids
Release 0.18.1

Changes:

- (#203) Now Repository.head returns the resolved reference, not the
  commit

- (#210) Fix refcount error in Repository.create_remote

- (#212) Improved diff documentation

Thanks to Jun Omae and Nico von Geyso.
Merge branch 'oid'