fix blame argument handling

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.