Choose a better data structure for PBGitGrapher

knocks time in decorateCommit: on linux repo from ~40s to ~1s

#183
Speed up comparison of PBGitSHA

Loading the ~350k commits of the linux repo, we were spending ~5s in `[NSObject retain]`, because of the insertion of a large number of commits into a large array of commits, the view model makes _many_ calls to `[NSArray indexOfObject:]` in order to determine if the new commits need to be drawn, how they effect the ones on-screen, etc.

We speed up `[NSArray indexOfObject:]` by making `[PBGitCommit isEqual:]` faster via direct access of ivars instead of through retained properties.

This brings the total CPU time for loading the linux repo from ~16s to ~11s on my test machine.

#183