Bug fix: Deleted lines included in report

The tool collects diff information for unstaged, staged, and committed changes using `git diff`.  This PR fixes a bug in which:

1) There were staged/committed changes to some lines.
2) The user had unstaged/staged changes that deleted those lines.

Since the lines were changed in *any* of the diffs, they would be included in the report.  This was misleading, since the actual lines would be deleted.  The result was that incorrect lines would show up in the final report.

This fixes the bug by processing committed/staged/unstaged changes in sequence and removing deleted lines from the report as encountered.

In addition, this PR fixes an issue in the test suite in which test cases were using cached data, causing the tests to pass by default.