diff patience algorith

Implements #92.

I think this is a good way of doing this rather than reading a string of user-chosen arguments to pass to `git diff`.

If you agree with the addition I'll update the readme so you can merge.