Implement IMGDIFF operation in the client.

This operation is used to apply update on gzipped data with much smaller
diff data than bsdiff.

update_engine only calls ApplyImagePatch() with all the data, the actuall
implementation of the imgdiff format is in bootable/recovery/applypatch.

Test: mma & added unittest
Bug: 26628339

Change-Id: I2b8a097aa68727b06be101cc06a3a896b835a815
diff --git a/payload_consumer/delta_performer.h b/payload_consumer/delta_performer.h
index 0a60020..03f30b2 100644
--- a/payload_consumer/delta_performer.h
+++ b/payload_consumer/delta_performer.h
@@ -256,6 +256,7 @@
   bool PerformBsdiffOperation(const InstallOperation& operation);
   bool PerformSourceCopyOperation(const InstallOperation& operation);
   bool PerformSourceBsdiffOperation(const InstallOperation& operation);
+  bool PerformImgdiffOperation(const InstallOperation& operation);
 
   // Extracts the payload signature message from the blob on the |operation| if
   // the offset matches the one specified by the manifest. Returns whether the