Create controller for Power HAL handles.

This controller is also a PowerHalWrapper and delegates each api call to
the Power HAL currently connected. It is also responsible for
reconnecting with it after any api call fails.

This cl also introduces PowerHalConnector, to abstract away the logic to
connect to a Power HAL.

Bug: 150878220
Test: atest powermanager_test
Change-Id: I24cd262ce40429cc1107a1f0184ed2719a7492d9
diff --git a/services/powermanager/tests/Android.bp b/services/powermanager/tests/Android.bp
index 1cf170e..70837cf 100644
--- a/services/powermanager/tests/Android.bp
+++ b/services/powermanager/tests/Android.bp
@@ -12,11 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-
 cc_test {
     name: "powermanager_test",
     test_suites: ["device-tests"],
     srcs: [
+        "PowerHalControllerTest.cpp",
         "PowerHalLoaderTest.cpp",
         "PowerHalWrapperAidlTest.cpp",
         "PowerHalWrapperHidlV1_0Test.cpp",