Spin off GTDiffPatch from GTDiffDelta

This way, we can inspect diff deltas without necessarily generating
patches. This also makes the situation with binary diffs less ambiguous.
`binary` is, ironically, ternary, so use an enum for it

libgit2 doesn’t always fill in this information until the files/patches
are further inspected.
lol actually implement -flags, load patches for tests
Track the GTDiffDelta that created each GTDiffPatch
Test object backreferences
Just pass the BOOL flags directly to libgit2

The function only cares about zero/non-zero, which BOOLs conform to.
Merge pull request #334 from libgit2/diff-patch-class

Spin off GTDiffPatch from GTDiffDelta