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