framework: Add advanced reboot options (2 of 2)

This commit is an squash of the commits below and re-adds the reboot
logic to CM.

I took the liberty to rewrite some of the ShutdownThread code because
it had some lingering issues present since I originally wrote this
for CM7 (!!). Namely, the reboot reason was being changed when the items
are pressed instead of when the user presses the positive button. This
made some people add workarounds like handling back button presses and
whatnot, these are gone now.

commit 588464bea40b92b04c4aeee35c47f7becceeed56
Author: Roman Birg <roman@cyngn.com>
Date:   Thu Jul 10 14:20:42 2014 -0700

    advanced reboot: add soft reboot option

    Adds a "Soft reboot" option which restarts zygote, as requested in JIRA
    CYAN-3998

    Change-Id: Ia6e5ed9b053e1c5ebd1fc55e5692858b97f7e0fc
    Signed-off-by: Roman Birg <roman@cyngn.com>

    Conflicts:
        core/res/res/values/cm_arrays.xml
        core/res/res/values/cm_strings.xml
        services/java/com/android/server/power/ShutdownThread.java

commit 3e7b92551bbf818ace41cd9b9532473ed7d18f2f
Author: Veeti Paananen <veeti.paananen@rojekti.fi>
Date:   Tue Jul 23 16:34:35 2013 +0300

    Show advanced reboot if using an insecure lock screen

    Enables the advanced reboot menu when locked if the selected lock method
    is insecure (= slide unlock).

    Change-Id: I759b7b31c5411597e2537a85183d73ec02eb2461

    Conflicts:
        services/java/com/android/server/power/ShutdownThread.java

commit cf42ed3993d5d05c9b2591883fefb6338fbcdd40
Author: DvTonder <david.vantonder@gmail.com>
Date:   Thu Feb 21 18:20:01 2013 -0500

    Framework: Show the Advanced reboot menu only for the primary user

    Change-Id: I73f82eade26f268e2b4608fa23cabcf0bb8fc862

    Conflicts:
        services/java/com/android/server/power/ShutdownThread.java

commit 08aa6fd643e0359114b86f50053921dd2d86fc50
Author: Ricardo Cerqueira <cyanogenmod@cerqueira.org>
Date:   Mon Nov 4 03:37:40 2013 +0000

    Framework: Add Advanced reboot (2 of 2)

    This commit responds to a setting in Development settings for including
    options in the power menu for rebooting into recovery or bootloader. It
    is defauled to off.

    When enabled, the Advanced reboot options will only be available once the
    device is unlocked.

Change-Id: I2bc1e7024abb69cb62154d3081df5a3eb7e79df9
Signed-off-by: iceandfire <arhamjamal@gmail.com>

Conflicts:
	core/java/android/provider/Settings.java
	core/res/res/values/cm_arrays.xml
	core/res/res/values/cm_strings.xml
screenshot: quick delete action

Add option to delete screenshot from notification

Change-Id: I0f153bc3c72b902163b4ae75e220ddb09e3fcb11
Signed-off-by: iceandfire <arhamjamal@gmail.com>

Conflicts:
	packages/SystemUI/res/values/cm_strings.xml
Show confirmation for deleted screenshot.

Change-Id: I4a36cf06bf252e5e15fe08fbd054dc64a0a507ae
Frameworks AppOps: Enable MODE_IGNORED for OP_WAKE_LOCK

  *) Kitkat commit log highlights that the current
     implementation state is for auditing only
     https://android.googlesource.com/platform/frameworks/base/+/713df150b92a0a5eea877f99405e31eefbf93a09

  *) We go one step further and honour MODE_IGNORED
     when for OP_WAKE_LOCK.

Change-Id: I889227ca24a508a0d96bd43594c5179ba758ae3d
ProximityWake : Add support for checking proximity when waking device

Change-Id: Ia5ff446d88435773acccc7467e66009000dc20cb

Be sure to shutdown the proximity sensor after display wake

This fixes:
http://review.cyanogenmod.org/#/c/66657/

Change-Id: I1768f13cb48c3e056d0e137642690fc3d650c4ab

PowerManager : Make proximity check opt-in

Change-Id: I7cf64a82530da2e655018e43683ba7a5584d54f8

Framework : Fix proximity wakeup reference

Change-Id: Ia40ca6fbf6e37fbb3996f2384f725c30b88c2131
Signed-off-by: iceandfire <arhamjamal@gmail.com>

Conflicts:
	core/res/res/values/config.xml
Add PowerManager integration for button and keyboard backlight.

Allows setting button and keyboard backlight brightness as well as
button timeout.

Change-Id: I550cccafc0a8f90d6347de9261adb26b75955cc4
appops: Fix an off-by-one error that causes the location icon to stay on

Commit bdfde4fc820fad768dbc596b17507e4cdc84b850 added Bluetooth AppOps
capabilities, but it contained a subtle bug where the string representation
was added in the wrong place, offseting every operation after it by 1. This
broke the toString functionality but didn't have any consequence since this
was used for logging purposes only.

Commit b01b08928a42a626f5f1c6c18a20d786fb873d75 changed AppOps so that
operations are persisted by name instead of by index, this caused the string
representation offset to affect functionality and, among other things, one
of the consequences was that coarse location requests were being interpreted
by AppOps as high-energy location requests.

Change-Id: I319f1ac1c5910098689b4cb8645eb92c0e3538cb
Improve scrolling cache

Scrolling cache helps make short scrolls/flings smooth but will
cause stutter when long flings are made. This patch disables
scrolling cache when long flings are made.

This patch also fixes a related bug where scrolling cache will
not be enabled properly when transitioning from flinging to scrolling.

Patch Set 2: Calculate threshold based on maximum velocity (Sang Tae Park)

Credits: Pawit Pornkitprasan

Change-Id: Iad52a35120212c871ffd35df6184aeb678ee44aa
Enhance power menu reboot option

* Use our old reboot icon
* Set correct dialog title & message when rebooting
* Move strings to cm_strings
* Add back reboot_download string used by samsung devices
* Remove Chinese translations, will be handled through crowdin

Change-Id: I3ba0e20dcdba0a295a071304048eebab6cfcf49d
Signed-off-by: iceandfire <arhamjamal@gmail.com>

Conflicts:
	core/res/res/values/cm_strings.xml