Create vibrator controller for Vibrator HALs

Create vibrator::HalController, a vibrator::HalWrapper that manages
the connection to the underlying Vibrator HAL service available and is
responsible for reconnecting after any api call fails.

This controller also has a single vibrator::CallbackScheduler instance
that outlives the connection to the HAL and is responsible for
triggering the callbacks when the HAL does not support them. It makes
sure the callbacks will not be affected during reconnection with the HAL
service.

Bug: 153418251
Test: atest libvibratorservice_test
Change-Id: Ic6d9671468ee18d0aff4e8a80b501c7bb110477d
7 files changed