Add an interface for bspatch reader

Add a wrapper class to separate the patch read from data stream
decompression. Therefore, bspatch will be able to process the patch
that is compressed with various tools.

Test: unittest pass
Change-Id: I5214e0451bde80366e8a70b960703afb2b2a7d97
diff --git a/Android.bp b/Android.bp
index 3d042d8..c0d3498 100644
--- a/Android.bp
+++ b/Android.bp
@@ -41,12 +41,15 @@
 
     srcs: [
         "bspatch.cc",
+        "bz2_decompressor.cc",
         "buffer_file.cc",
         "extents.cc",
         "extents_file.cc",
         "file.cc",
         "memory_file.cc",
+        "patch_reader.cc",
         "sink_file.cc",
+        "utils.cc",
     ],
 }
 
@@ -105,6 +108,7 @@
         "diff_encoder_unittest.cc",
         "extents_file_unittest.cc",
         "extents_unittest.cc",
+        "patch_reader_unittest.cc",
         "patch_writer_unittest.cc",
         "split_patch_writer_unittest.cc",
         "suffix_array_index_unittest.cc",