Patch Set 31: Looks good to me, but someone else must approve

I'm finally happy with this implementation. Very little of Kevin's code actually survives, what I did keep was the unit tests and the BlameCommand class. The BlameGenerator is completely rewritten and bears no resemblance to the code Kevin contributed in earlier revisions.

Based on descriptions I have read on the Git mailing list, I am fairly certain this implementation is very similar to the C implementation in terms of the algorithm that is used, however I know *nothing* about how the C code is actually structured. `git blame` is the one corner of C git that I have never ventured into before.  A tricky part of the algorithm is handling merge commits and passing blame back onto the ancestors correctly here. I'm not sure how the C code actually does it, I took a stab that sounds logically correct. :-)