Spin off GTDiffPatch from GTDiffDelta

This way, we can inspect diff deltas without necessarily generating patches. Since binary diffs don't even _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