Complete overhaul of the button led logic.

With this change there is support for three different input methods:
- via exported function touchkey_pressed (for touchkey presses)
- via sysfs led_button (for liblights buttons)
- via sysfs led_pattern (for liblights notifications)

Each of these input methods is handled independently.
The newest input always wins independent of the input method, besides
switching-off. In that case only the previous switch-on of the
same input method is affected.

Let's illustrate that on an example:

touchkey on     -> all leds on
led_pattern on  -> pattern is active
touchkey off    -> pattern stays active
led_button on   -> all leds on
led_button off  -> pattern is activated again
led_pattern off -> leds off

Change-Id: I921db14a7e4b1fb6db1ee597d920c1c75e6d2d0d