BootControl exposes DynamicPartitionControl.

Add BootControlInterface::GetDynamicPartitionControl, which
exposes the internal DynamicPartitionControlInterface object.

BootControlStub / FakeBootControl / BootControlChromeOS uses
DynamicPartitionControlStub (all functions succeeds).

BootControlAndroid uses DynamicPartitionControlAndroid.
GetPartitionDevice is exposed so that BootControlAndroid can use it.

Follow-up CLs delete duplicated PreparePartitionsForUpdate
and Cleanup from BootControlInterface so that BootControlAndroid remains
a thin wrapper of the HAL (+GetPartitionDevice, which exists before
dynamic partitions.)

Test: update_engine_unittests

Change-Id: Ifc2aa2ee8a63ef581c8ebc562ec158794ac51dfd
diff --git a/boot_control_android.h b/boot_control_android.h
index 4393ae8..0093ecb 100644
--- a/boot_control_android.h
+++ b/boot_control_android.h
@@ -55,6 +55,7 @@
                                   const DeltaArchiveManifest& manifest,
                                   bool update_metadata) override;
   void Cleanup() override;
+  DynamicPartitionControlInterface* GetDynamicPartitionControl() override;
 
  private:
   ::android::sp<::android::hardware::boot::V1_0::IBootControl> module_;