Add BlameFile func and options

TODOs

* [ ] Add a wrapper func for `git_blame_get_hunk_byline`
Any time you want to grab the error message from libgit2, you need to make sure you're on the same thread which generated the error, which the Go runtime by itself won't do. Check out the thread locking done by other functions.