Create a FuseDataProvider base class

The fuse data provider for adb/sdcard shares common code and structures.
This cl creates a FuseDataProvider base class and provides
implementations for adb and sdcard.

In the follow cls, we can kill the provider_vtab struct; and also add
another implementation to parse a block map file and provides data.

Test: unit tests pass, sideload a package, apply a package from sdcard
Change-Id: If8311666a52a2e3c0fbae0ee9688fa6d01e4ad09
diff --git a/minadbd/Android.bp b/minadbd/Android.bp
index a95d979..9b889f4 100644
--- a/minadbd/Android.bp
+++ b/minadbd/Android.bp
@@ -66,6 +66,7 @@
 
     static_libs: [
         "libminadbd_services",
+        "libfusesideload",
         "libadbd",
     ],