SystemUI: Status bar clock - fixes

This commit fixes:

- no overlapping more from status bar icons on center clock.
  The width depending on what the user has setuped (date and clock) is exactly meassured now
- do not start animations if they are not needed
- reduce settings provider calls
- a bit cleanup

Change-Id: I7a37a6ae8f9bad0f265119af05dc20cf21cd6890
SystemUI: Ensure that the Clock is actually enabled in IconMerger

to device if we need to calculate

Change-Id: If12b0e26b32f044f1a82cf8b539283194d1d0b4c
Forward Port: Smoother Upload and Download Animation

Change-Id: I6e6409cc85ad951019dbac10156d4aed92f4c5bc
Keyguard: don't refresh ui when screen off

KeyguardStatusView is doing refresh all the time,
which cause high power when screen off.

PatchSet:
- We turn of the refresh when screen is off which is a good
  idea. But we should force latest next refresh when screen turns
  on. Du that a timechanged refresh maybe comes a bit later.

Change-Id: Icbb9a92bae3cf099417ab820617dd3f17e49f75a
Only go HOME if screen is fully awake

Avoid going home when hardware home button is used to wake the device on an insecure keyguard

Change-Id: I5d5d8c4fff76967c29e70251f7b165205005ba11
Power menu: Change color of volume selector to material green

Change-Id: I04eb568245c6cdae58dccaaa45dd5dd0043b9582
[2/2] framework/base: Add EdgeGesture service.

Based on code of PieService.

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

Conflicts:
	core/res/res/values/symbols.xml
Support GESTURE_SENSOR input device type with GestureService

* The GESTURE_SENSOR input device type is meant to support touch sensors
  which are meant for gesture input only, very similar to a touchpad,
  but without the pointer capability.
* Define separate service to handle gestures from GESTURE_SENSOR device
  type.

Change-Id: I9b273df2a3cc141774d7f7cd81e43a90ea5b230b

Hide InputDevice.SOURCE_GESTURE_SENSOR from API

Change-Id: If009e9595fc593594b0e7764669996de137483a1

GestureInput : Allow doubletap/longpress configuration

Allows devices to specify pending intents for double tap and
long press events.

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

Conflicts:
	core/res/res/values/symbols.xml
PhoneWindowManager: add ability to use EdgeGestureService for system gestures.

Update: Default to enabled
Signed-off-by: iceandfire <arhamjamal@gmail.com>

Conflicts:
	core/java/android/provider/Settings.java
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

Change-Id: Id4e2c0d82f771cd1c20e9196fb6db347494cca69

Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java