Add failing test
Update test coverage

Cover deletion and tree-to-tree diffs
Remarshal and rename flags
Add git_patch bindings and fix patch generation
Use InAttribute on callbacks

This is really ben's commit - just a spike on an alternate approach.