An AutoValueExtension allows for extra functionality to be created during the generation of an AutoValue class.