[WIP] Spin off GTDiffPatch from GTDiffDelta

**:warning: NOT READY TO MERGE :warning:**

This way, we can inspect diff deltas without necessarily generating patches. Since binary diffs don't have patches, this also cleans up the interface slightly (before, we had some properties that were undefined when used with a binary diff).

/cc @dannygreg