Adds vibratePattern DBus API, makes pattern repetition happens on event loop
This MR rewrites the vibration pattern system to a.) don't use a separated thread, b.) to accept arbitrary pattern of unequal on and off times, and c.) to not elongate the pattern when VibrateExtraDurationMs is in use.
After that, the new DBus method vibratePattern
is added to allows applications to take advantage of b.). In particular, this allows lomiri-push-service to pass along custom pattern from push helpers to us.
Fixes: #11 (closed)