Wake Gestures interface and other options for S2W/S2S/DT2W

The wake gestures interface creates a new input device (wake_gesture) and generates input events for several gestures while the screen is off:

1 -> sweep right
2 -> sweep left
3 -> sweep up
4 -> sweep down
5 -> doubletap

These input events can be used by userspace apps to perform custom actions for each gesture

Also added bi-directional sweep2sleep, omnidirectional sweep2wake and optional haptic feedback for gestures