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
Improve ambient backlight sensor control.

Use the ALS values from the datasheet to improve the range of the
backlight levels. Remove the "optimized" version from LG.

Change-Id: I5ad27c23f784d8dfe4efc5726e1ee9a9b0682e41