Base: update Immersive mode

allow choosing different state of navigationbar and statusbar like expanded desktop

taken from AOSPA

https://gerrit.paranoidandroid.co/3570
https://gerrit.paranoidandroid.co/#/c/3569/

Immersive Mode
- Front: Toggles Global On/Off.
- Back: Toggles modes (Full/Nav only/Status only).

fix build
rebased
rebased
rebased
fix build
fix build
not flip if devices not support navigationbar

Change-Id: I0b2821a9c725ada19f70d77855bb6d2a794ce5ca

Conflicts:
	core/java/android/provider/Settings.java
	core/java/com/android/internal/util/omni/DeviceUtils.java
	core/res/res/values/custom_strings.xml
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsFlipTile.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java