Enable custom actions for double-tap home (1/2)

PatchSet1: add custom actions
PatchSet2: set defaults
PatchSet3: try to get defaults from config.xml
PatchSet4:
* do get defaults from config.xml
* store state of HARDWARE_KEY_REBINDING
* removed trailing whitespaces
PatchSet5: merge with 48002
PatchSet6: getting late, forgot to change the title when merging
PatchSet7: remove whitespace trimming, reduce code duplication
PatchSet8: rebase, simplify code

Change-Id: I041e7ab3853b356ddbdab2524f096546319276f9
PhoneWindowManager: Hardware key handling fixes and cleanup

-   Call cancelPreloadRecentApps for long presses and double taps of the home
    key at the right time based on the assigned actions.
    (Reverted Ibd16ff07b9910605c95180b54040f3e2b78939cb as the issue is fixed)
-   Do not allow any menu key events through to apps if
    mPressOnMenuBehavior is not KEY_ACTION_MENU.
-   Don't cancelPreloadRecentApps when menu key is released after a long press.
    (Reverted Idf1d27aa725547e0ddc44905e27da6c1b4540fab as the issue is fixed)
-   For the menu, app switch and assist keys don't cancelPreloadRecentApps on
    long press if the long press has no action assigned to it.

Patch Set 2: -  Fixed not cancelling preload on long press of home when double
                tap is bound to recent apps.
             -  Reduced delta against AOSP.
Patch Set 3: -  Do not perform long press action when key continues to be held
                down after a double tap on home.

Change-Id: I3cc8f9528e5dbd3e0b78308b03440abd9d9351f6
Fix unresponsive home key after waking device with a long press

With the lockscreen disabled mHomeConsumed would not be properly set back to
false upon releasing the key, causing a subsequent press to perform no action.

Change-Id: I38eeba5850c2f0474cc4cca82a9dcbf17afa4665
Button Light Notification (1/2)

Credit/Thanks to Rdlgrmpf (Robin Morawetz) / LorDClockaN

Change-Id: Ib409ef100f17c4709ce19675f383e4b54a2fe983