libavb: Move all A/B functionality into separate libavb_ab/ directory.

This new libavb_ab "library" depends on libavb "library" insofar that
it's using the same abstractions (system dependencies and
operations). For easy integration the newly introduced AvbABOps struct
extends the AvbOps struct so users can build just a single struct and
use that for both.

Also emphasize in README that libavb_ab usage is optional and that
it's possible to integrate libavb with another A/B stack.

(The quotes in use for "library" above is because these are not really
libraries from a system-integration perspective. That is, 3rd party is
expected to integrate this source-code with their own build-system and
toolchain.)

Since we now have multiple libraries - at least from the point of view
of how it's used in unit tests - change Android.mk such that library
users need to use libavb/libavb.h and libavb_ab/libavb_ab.h instead of
just e.g. libavb.h.

Test: Unit tests pass
Test: Tested in UEFI-based bootloader in qemu.
Test: Tested boot_control.avb.so in same UEFI-based system.
Bug: None

Change-Id: I19ea8f6bd1e63b2617b0e9fa9fc3b2a68ac4a92e
diff --git a/test/fake_avb_ops.h b/test/fake_avb_ops.h
index 42a47d0..2a81e17 100644
--- a/test/fake_avb_ops.h
+++ b/test/fake_avb_ops.h
@@ -29,7 +29,7 @@
 #include <string>
 #include <vector>
 
-#include "libavb.h"
+#include <libavb_ab/libavb_ab.h>
 
 struct FakeAvbOpsC;
 typedef struct FakeAvbOpsC FakeAvbOpsC;
@@ -41,6 +41,8 @@
 
   AvbOps* avb_ops() { return (AvbOps*)avb_ops_; }
 
+  AvbABOps* avb_ab_ops() { return (AvbABOps*)avb_ops_; }
+
   void set_partition_dir(const base::FilePath& partition_dir) {
     partition_dir_ = partition_dir;
   }