Only inspect diffs when checking files for keywords

We previously checked which files were modified and then loaded all
of the file contents of these files and checked them against keywords.

This commit makes it so that we only inspect the Git diff which has
the advantage that we are not rejecting pushes that don't contain
keywords themselves but modify files that do.

We inspect the right side of the diff, so only text that is added by
the commit we inspect.

This improvement is not gated by a config paramter because it seems
universally useful to existing installations.

Future improvements could make the logic only inspect intraline diffs.

This diffing will not add latency to a 'git push' validated by this
plugin because we use the diff cache that is triggered anyway
during a git push in a later stage of processing.

Change-Id: I7892039c8dfe1fc4ca90cf47012753e1fee5ee89
4 files changed