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` struct was discarded rather than passed to `git_blame_file`.

This commit fixes these issues and adds a test case.