Add subscription manager.

Add a class to manage VHAL subscription. It supports subscribing
and unsubscribing to properties. For continuous property, it uses
recurrent timer to recurrently calls the registered function. For
on-change property, it would return all subscribed clients for a
given property.

Test: atest DefaultVehicleHalTest
Bug: 200737967

Change-Id: I3e1a0401fd465dc31fe08ea77d5a6651fa7bbfaf
diff --git a/automotive/vehicle/aidl/impl/vhal/Android.bp b/automotive/vehicle/aidl/impl/vhal/Android.bp
index eaa23dc..0132e6f 100644
--- a/automotive/vehicle/aidl/impl/vhal/Android.bp
+++ b/automotive/vehicle/aidl/impl/vhal/Android.bp
@@ -58,6 +58,7 @@
         "src/DefaultVehicleHal.cpp",
         "src/PendingRequestPool.cpp",
         "src/RecurrentTimer.cpp",
+        "src/SubscriptionManager.cpp",
     ],
     static_libs: [
         "VehicleHalUtils",