Implement XzExtentWriter.

The new XzExtentWriter class is an ExtentWriter that uses xz-embedded
to decompress an xz stream and write it to the underlying extent
writer. This will be used to implement REPLACE_XZ in a follow up CL.

Bug: 23604708
Test: Added unittests.

Change-Id: Ifd2ba0c917b66ab33e5cff1d6069da833ad54882
diff --git a/update_engine.gyp b/update_engine.gyp
index 05bb6b4..2a1768e 100644
--- a/update_engine.gyp
+++ b/update_engine.gyp
@@ -130,6 +130,7 @@
           'libshill-client',
           'libssl',
           'expat',
+          'xz-embedded',
         ],
         'deps': ['<@(exported_deps)'],
       },
@@ -213,6 +214,7 @@
         'update_manager/state_factory.cc',
         'update_manager/update_manager.cc',
         'utils.cc',
+        'xz_extent_writer.cc',
       ],
       'conditions': [
         ['USE_mtd == 1', {
@@ -447,6 +449,7 @@
             'update_manager/update_manager_unittest.cc',
             'update_manager/variable_unittest.cc',
             'utils_unittest.cc',
+            'xz_extent_writer_unittest.cc',
             'zip_unittest.cc',
             # Main entry point for runnning tests.
             'testrunner.cc',