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/Android.mk b/Android.mk
index c12fc16..abbae26 100644
--- a/Android.mk
+++ b/Android.mk
@@ -106,7 +106,8 @@
     update_engine-dbus-libcros-client \
     update_engine_client-dbus-proxies \
     libbz \
-    libfs_mgr
+    libfs_mgr \
+    libxz
 LOCAL_SHARED_LIBRARIES += \
     libprotobuf-cpp-lite-rtti \
     libdbus \
@@ -176,7 +177,8 @@
     update_manager/real_updater_provider.cc \
     update_manager/state_factory.cc \
     update_manager/update_manager.cc \
-    utils.cc
+    utils.cc \
+    xz_extent_writer.cc
 $(eval $(update_engine_common))
 include $(BUILD_STATIC_LIBRARY)
 
@@ -190,6 +192,7 @@
     libupdate_engine \
     libbz \
     libfs_mgr \
+    libxz \
     update_metadata-protos \
     update_engine-dbus-adaptor \
     update_engine-dbus-libcros-client \
@@ -237,6 +240,7 @@
     libupdate_engine \
     libbz \
     libfs_mgr \
+    libxz \
     update_metadata-protos \
     update_engine-dbus-adaptor \
     update_engine-dbus-libcros-client \
@@ -287,6 +291,7 @@
     libupdate_engine \
     libbz \
     libfs_mgr \
+    libxz \
     update_metadata-protos \
     update_engine-dbus-adaptor \
     update_engine-dbus-libcros-client \