Updating diff

Here's a bunch of code. You probably don't want to pull this in, but i wanted to show you some of the playing i've done so far on the diff stuff. That way we can start up a conversation and i'm hoping eventually to rebase and squish this work into a decent PR against the libgit2 fork.

i found out that the iterator is gone and as a result, i don't think your branch will compile. At least i didn't on my system, but i'm not very trustworthy because i'm not great with Ubuntu.

i updated to a more recent libgit2 and then commented out stuff like crazy, so at the moment, `diff#patch` is the only thing i have working.