update_engine: Apply PUFFDIFF operation

This patch adds operation for applying PUFFDIFF operation. As long as
the minor version is not increased, this patch will not be directly
used.

This patch sets the cache requirement for PUFFDIFF operation to 5MB as it has
been selected for now from sample data below:

Update from ToT(R64) to veyron-minnie-R63-9928.0.0
Cache Size (MB)	- Time to Update (minutes)
no-puffdiff	0:04:20
50	0:05:30
20	0:06:40
10	0:09:10
5	0:11:00
3	0:13:40
2	0:15:45
1	0:19:30

BUG=chromium:717785
TEST=brillo_update_payload verify passes; unittests pass;
CQ-DEPEND=CL:722452

Change-Id: I481481d40ef9df6412782198e3c97deb3997cc2e
Reviewed-on: https://chromium-review.googlesource.com/658297
Commit-Ready: Amin Hassani <ahassani@chromium.org>
Tested-by: Amin Hassani <ahassani@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Reviewed-by: Sen Jiang <senj@chromium.org>
diff --git a/update_engine.gyp b/update_engine.gyp
index 9f68810..4da04d4 100644
--- a/update_engine.gyp
+++ b/update_engine.gyp
@@ -130,6 +130,7 @@
         'exported_deps': [
           'libcrypto',
           'xz-embedded',
+          'libpuffpatch',
         ],
         'deps': ['<@(exported_deps)'],
       },