Add generic evdev input grab state machine

The idea is that state machine is told when grab/ungrab is desired,
but actual grab/ungrab happens when the input device is idle (finger
lifted from display, buttons released etc).

This should make it less likely that ui side that is also reading the
inputs misses touch / button release.
Grab touch input while display is off

Input is grabbed when display is powered off.

The grab is released when display is powered on and there are no
finger or palm touch detected.

This should stop the UI side from seeing touch events during
display power up and provides additional protection against
stray input if the device is held without covering the proximity
sensor.

[mce] Grab touch input while display is off
Grab volume key input while display is off

Volume key input device is grabbed when existing keypad input policy
would have disabled emitting of key input events, i.e. when display
is off or ui is locked and there is no active call.

[mce] Grab volume key input while display is off
Add new dbus message parsing helpers
Ungrab volume keys when music playback is active

As there is no direct music playback is active information available,
heuristics based on volume limit audio policy decisions are used.

Based on that the volume keys are ungrabbed even if display is off or
ui is locked.

Also parsing of audio routing was changed, now all sink devices that
have name like "xxxforcall" are considered the same as "xxx". This
should make headset detection work the same whether "forcall" type
sinks are needed in the device or not.

[mce] Ungrab volume keys when music playback is active
Delay automatic unblanking after proximity sensor is uncovered

If proximity blanking policy is active, covering the proximity sensor
will blank immediately. But the display is unblanked only after the
sensor stays uncovered for 500 milliseconds.

[mce] Delay automatic unblanking after proximity sensor is uncovered
Leave touch panel active during in-call proximity blanking

If touch panel is powered off, the touch detection does not work
reliably if there is finger/ear/chin on screen when the panel is
powered on again. Since that can break the touch blocking during
display power up in a situation where capacitive touch from chin
or ear is likely, the touch panel is not powered off during proximity
blanking even if the double tap detection is disabled.

[mce] Leave touch panel active during in-call proximity blanking
Fix doubletap simulation so that it works in Jolla phone too

Uses protocol A, with x,y and pressure values for each touch point.
Make doubletap filtering obey the doubletap wakeup setting

Filtering occurs in one place, regardless of where and how the doubletap
event gets emitted from. Filtering takes the doubletap wakeup setting
into account, and thus "mcetool --set-doubletap-wakeup=always" works now
as expected.

[mce] Make doubletap filtering obey the doubletap wakeup setting
Handle brightness adjustments due to display state change in one place

Makes the logic easier to follow and using helper function for forcing
the brightness level allows removal of copy paste code dealing with
cached/target states and fading timers.
Remove unused code dealing with suspending touch monitoring
Do not assume kernel side supports no-sleep double tap disable

Until the kernel support is in, we need to fully disable double tap
also when dealing with in-call proximity blanking.
Merge pull request #134 from spiiroin/input_grab

Input grab