Add abstract methods to the ChangeEvent hierarchy

There is some common information in the ChangeEvent hierarchy, such as
the type string, the change, and the project, that is not expressed in
the old POJO hierarchy. Add a few convenience methods that can be used
if the user has just a ChangeEvent, but which do not affect the JSON
serialization.

Change-Id: I22aadf76835528a63743bd758b5d6868dad212ed
14 files changed