Blame Canada

Add a revwalk-based blame API that does most of what `git blame` can do.

- [x] Initial API proposal
- [x] :fire::fire::fire::fire:
- [x] basic blame
- [x] ~~`git blame -M`~~ (later)
- [x] ~~`git blame -C`~~ (later)
- [x] ~~`git blame -CC`~~ (later)
- [x] ~~`git blame -CCC`~~ (later)
- [x] buffer blame
- [ ] :ship: