Patch Set 1:

I just pushed a bunch of IndexDiff cleanups that should really be put in before this goes in.

I don't have time to rebase this on top tonight, I'll do it tomorrow morning my time if you don't get to it before me.