Computing if a change is a pure revert of another change or commit
is an expensive operation as it requires a Git merge. This is especially
true for large Git repositories.
However, this information is easy to cache in a persistent cache as it
can be keyed by the SHA1s of the commits that we want to diff. Given
that this computation runs many times if the Prolog fact is used because
we freshly compute the submit rules often, this commit builds a
persisted cache for it.
There are many existing tests that cover the behavior in ChangeIT.
This commit adds a serializer for Protobuf to ensure we are not using
the default Java serialization as well as a test.
Change-Id: Id79e2fb2f6646d8e48fdfc3a3b0bcf03f51b1400