Move all interaction with vibrator HAL outside VibrationThread lock

The calls to the Vibrator HAL (on, perform, compose, off) are done from
within synchronized blocks of code in VibrationThread. This makes calls
to cancel the thread or native callbacks wait for HAL interactions,
which might have a latency.

Fix this by moving all calls to the HAL to the thread main look and out
of any synchronized block.

Also added a regression test for this scenario.

Bug: 185191271
Fix: 189489898
Test: VibrationThreadTest
Change-Id: I1aaf0ef7162abd15adfb4a8ac62b9798d67ac592
2 files changed