Store all marks as sha1s instead of integer local revisions.

This should help with quite a few future advanced endeavors and make the entire app more stable in the long run. Most of the related complaints are referenced from issue #16.

The test suite is passing with all of these, but I'd like some additional testing in the real world and feedback before I merge it into master.

I thought this was going to warrant a major release, but the changes turned out to be pretty minor. Hopefully, however, we can leverage them for some of the other problems. Then again, I may be missing something. This is one of those "I wrote it in an airplane" commits. ;-)

Jed, Max, any comments?