This requires fairly little work on the pygit2 side to kick off all the
searching on the libgit2 side, so it's a fairly good candidate.
This changes the return value for the commit ids to Oid instead of
strings, which is what we generally try to return.
The argument handling for the new Repository_blame had several problems:
- The call to PyArg_ParseTupleAndKeywords was missing &path, so none
of the optional arguments got parsed correctly.
- newest_commit and oldest_commit were missing type validation
against OidType.
- The opts structure was discarded rather than passed to git_blame_file.
This commit fixes these issues and adds a test case.