Improve button/keyboard backlight code.

- Improve UX
- Deduplicate code

Conflicts:
        res/layout/button_backlight.xml
        res/layout/keyboard_backlight.xml
        res/values-da/cm_strings.xml
        res/values-el/cm_strings.xml
        res/values-es/cm_strings.xml
        res/values-hu/cm_strings.xml
        res/values-it/cm_strings.xml
        res/values-pt/cm_strings.xml
        res/values-ru/cm_strings.xml
        res/values/cm_strings.xml
        res/xml/button_settings.xml
        src/com/android/settings/cyanogenmod/ButtonBacklightBrightness.java
        src/com/android/settings/cyanogenmod/ButtonSettings.java
        src/com/android/settings/cyanogenmod/KeyboardBacklightBrightness.java

Change-Id: Ie0218de8b83fe49e3fe1d91a64c2522af03ba06d
Check for presence of hardware abstraction framework.

Change-Id: I59da970d4a4eb74a571d1ac27cb18e351dfc2a53
Display Settings: Better font size control

Use a SeekBar instead of a list/spinner to determine the font scaling.
For consistency, an approximate size (small, normal, etc.)
 and the exact percentage are displayed.

Change-Id: I96f80d93e740a25a6a6890b423a41c3900b93767
Save value to shared prefs in HW value scale.

Otherwise we can run into precision issues if the HW e.g. uses a 0..255
scale.

Change-Id: I2df81db728faa64ee7b09cc3101122ff5c95b7a3