Add BlameFile func and options

TODOs

* [ ] Add a wrapper func for `git_blame_get_hunk_byline`
This leaks the C string. You need to make sure to keep this pointer around to free it later, e.g.

```go
cpath := C.CString(path)
defer C.free(unsafe.Pointer(cpath))
```