SystemUI: Move statusbar container object

The original ICS themeing code had the statusbar container (to rebuild
the views when switching themes) in the SystemUI service itself, since
it was the only common point between the phone and tablet bars.

JB introduced a BaseStatusBar class from which both layout types
derive, so move the container (and its initialization) there.

Additionally, explicitly make the phone statusbar view grab the input
focus when the window is expanded, to avoid missing the BACK keyevent
that makes it collapse.

Change-Id: I949bbf2087620406b1a2c91cf2ef8e91cf97bf32
WebSettings: Add ro.cm.version to default user agent.

Change-Id: Ic14a1626ab7bec26297e2041bdcfb26ca7b3a440
Bind VolUp+VolDown to toggle the ringer

Add a keyboard chord to toggle the state of the ringer, respecting
the user's vibration settings.
This is using the pre-existing debouncing variables and logic from the
screenshot chord, and renamed some variables to make them a bit
more generic

Change-Id: Ia30364eb28a41642c245fa2222be46fb1a781a90
Fix don't interrupt ongoing PIN/PUK verification

This fixes an issue which only occurs if
1. you use a SIM PIN
2. the PIN verification takes longer than the screen timeout is. e.g. when then screen turns black while "unlocking SIM" message is displayed!

It might be possible to simulate the bug by pressing power quickly after the PIN has ben entered and "unlocking SIM" message is still being displayed.

If the PIN verification takes longer thant the screen timeout is then the screen turns black.
If that happens LockPatternKeyguardView.reset() is called which then forces a re-creation of the view. But then the original created
SimUnlockScreen.onSimLockChangedResponse callback never receives the success message for the SIM unlock.
What then happens is that the LockPatternKeyguardView is re-created again and again whenever screen turns off while waiting
until we receive a SIM state changed event e.g. until we are back on network.
But when that happens we are presented the pattern unlock screen. With a single touch we can then (finally) get on the homescreen.

The fix removes the forced re-creation of the LockPatternKeyguardView if there is a PIN/PUK verification in progress. Which leads to a 'normal' unlock behavior:
1. enter pin
2. "unlocking SIM" message is displayed
3. maybe screen turns off after timeout
4. after some seconds you get on the homescreen directly

former ICS submission: http://review.cyanogenmod.com/#/c/19243/

AOSP: https://android-review.googlesource.com/#/c/32310/

The issue is still present when using jellybean code.

Change-Id: I1f9bb26105d07c72b59bdec064e9e93cbdc918c4
Sensor: Add RotationVectorSensor2

Some ICS apps (namely, Google Maps) expects a rotation vector to be
available. Newer devices, this is provided by either Android's
sensor fusion (requires Gyro) or by hardware sensor fusion (MPL).

Older devices will lack this virtual sensor and compass in Google
Maps will not work. To fix this, we can provide our own rotation
vector sensor by converting the values from the orientation sensor.
(They are basically the same information in different formats.)

Thanks to Unhelpful for the help with related math.

Change-Id: Id3bad65659174a08cfe945e9af6e48ca012a5135

(cherry-picked from ics)

Change-Id: Ib0eeb683e3177d96b9b2c7bc2916b19ddaec8ae5
Merge remote-tracking branch 'cyan/jellybean' into jellybean