The new git file diff cache computes the pure git diff for a single file
path according to a git tree diff. The output entity contains:
1) List of edits (modified regions) of the file.
2) Old and new file paths.
3) Old and new blob object IDs for the file in git.
4) Change type (file is added or deleted or modified, etc...).
5) Patch type (whether the file is unified or binary).
6) File mode.
The cache also returns an empty git FileDiff if the requested file
path does not exist among the set of modified files between the 2
commits identified by their tree IDs in the cache key.
Change-Id: Ia278881c0f5bd71a82ea6863653ae52eb1c3ad0b