LockScreen: allow long-press actions from hardware keys (2/2)

Allow following actions with button long-presses on lockscreen:
- toggle flashlight (if available)
- play/pause/next/previous track selection
- toggle silent mode

Allow customizing of back, menu, and home buttons. Search
button events are completely ignored on the lockscreen.

Auto-detect hardware keys, only show appropriate menu
options based on the actual hardware keys available on the
device (or completely hide if there are no hardware keys).

Based largely on Danny Baumann's work from gingerbread.

Ported from CM10

Change-Id: I36ea5eb7e93d68de872536dc6d7e93f99ba1621f

Conflicts:
	AndroidManifest.xml
	res/xml/lockscreen_interface_settings.xml
	src/com/android/settings/slim/LockscreenInterface.java
Settings: Add Power & Camera to Lockscreen longpress buttons (2/2)

Change-Id: I835fbc1f40e69554b4cd7fdb9c41f934632377f6

Conflicts:
	res/values/arrays.xml
	res/values/strings.xml
Settings: Camera button rebinding and lockscreen action additions (2/2)

Adds new config_deviceHardwareKeys bitmask for camera button.
Lets you rebind the camera press/longpress and adds a new KEYCODE_CAMERA handler to inject a longpress KeyEvent
in order to let you bind keys to actually trigger the shutter, in addition to launching the app itself.

This also adds KEYCODE_ASSIST and KEYCODE_APP_SWITCH to the available keys to assign longpress lockscreen actions to.

Change-Id: Iad1c850e07974ef45313b32c9427b9e0d31dedd7

Conflicts:
	res/values/arrays.xml
	res/values/strings.xml
	src/com/android/settings/cyanogenmod/HardwareKeys.java
fix derp'd array