PowerManagerService: fix getAutoBrightnessValue for btn/kbd

getAutoBrightnessValue calculations are correct only for LCD
backlight brightness values increasing with higher light values.
Skip the calculation for the reversed button/keyboard backlight
arrays, where the backlight brightness decreases with increasing
light values.

Change-Id: Ib72b8325fe2b0f83780e91dc94eea2e38061224b
fix an overflow in the orientation sensor calculations

this would cause the TYPE_ORIENTATION sensor to report NaN after
40 to 800 hours of up-time. this problem only affects the older
and deprecated SensorListener API.

Bug: 7434842
Change-Id: Ie8593cca9c98e4907e417db4106c06151e3ee9a1
Fix button backlights that depend on ALS.

On a few devices, lighting the buttons when the screen turns on
depends on the lightsensor, regardless of the user preference.
So go back to enabling the sensor whenever the screen turns on, and
enforce the user preference after running through the light settings
once.

Port from CM9.

Original: http://r.cyanogenmod.com/#/c/12818/

Change-Id: Ibb9155b4f299637d553986c44b9cb548dc855489
Separate configuration of auto-brightness for button/keyboard backlights.

Presently, light-sensor based automatic brightness
(config_autoBrightnessLevels) controls both button and keyboard backlights
in addition to the screen backlight.  Unfortunately auto-brightness for
button/keyboard backlights doesn't work well on devices (e.g., epicmtd)
with neither (i) dimmable button/keyboard backlights (so when they're on,
they're very bright even if the screen backlight is relatively dark) nor
(ii) identifiable surface features on capacitive buttons (so they can't be
found if the backlights are permanently turned off).

For these devices, the non-auto-brightness behavior of button/keyboard
backlights, whereby they turn on during screen-on events and user activity
and timeout-to-off shortly thereafter, is preferable.  Thus, this commit
adds a config option, config_autoBrightnessButtonKeyboard (defaults to
true), that when disabled allows for automatic brightness control of the
screen backlight, but retains the timeout-based behavior for button and
keyboard backlights.

Also addressed is a bug that disables the button and keyboard backlights on
screen unlock, and reenables the backlights on touch events so that
capacitive keys may be located.

Additional fixes for button/keyboard backlight auto-brightness.

- Use sensor-determined brightness values when the button and/or keyboard
  lights are on, even if button/keyboard auto-brightness is disabled, since
  users may want to specify a custom brightness setting that disables the
  button/keyboard backlight entirely in low-ambient light situations.

- When button/keyboard auto-brightness is disabled, don't update button and
  keyboard brightnesses immediately if ambient light (the sensor) changes,
  as this may reactivate these lights after they've turned off in absense of
  user activity.  This is a particular problem when watching video or other
  circumstances when the lights are not expected to reactivate.

Change-Id: Idb26aa907ce4b04fb1f52a884e4e5bcb40fe695f