Move header files to src/

This is not a C library, so we don't have a public C API to expose.
docs: complete and improve organization
fixed typo for GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH

thanks to cboos for reporting.
pygit2 should work with libgit2 built with THREADSAFE=ON
Merge remote-tracking branch 'cboos/THREADSAFE-compatibility'
Fix docstring for Commit.init
py_str_to_git_oid: check length of raw oid (#205)
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.)
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