fb: system wide immersive mode aka expanded desktop thanks to

Danny and Kiril for the base

and kroz for the graphics

At least it is expanded desktop mode like on 4.3 and before but using
not the nice new immersive mode from google which was introduced with 4.4
Means everwhere it is swipable in from the top or bottom depends on
if the navbar or statusbar is existend. As well it respects our other
features like 0dp settings for navbar in landscape or portrait etc.
The option to choose the mode what the user want to hide we removed
due that it is now absolutly not needed. 1. it is swipeable now
2. The user can disable navbar like he want in navbar settings if
urgently needed

As well added shortcut support for navbar navring and powermenu

Change-Id: I37e8f9571cf622154d347b7eabd13bffc99ae187
fb: fix IME switcher notification shows on reboot althoug diabled

due that it gets overwritten

Change-Id: I12311df0081481814edf7250bd4959fd70792072
SystemUI: fix RecentPanel position in landscape mode.

In landscape mdoe we forcing ltr layout direction. This cause
call to resolvePadding too late and discards paddings
computed by fitSystemWindows. To workaround this we can catch
onRtlPropertiesChanged and force executuin of fitSystemWindows
one more time. To fix scroll issue after padding will be setted
we calling scrollTo with correct position.

Change-Id: I0ac10ac3554142b15114ce7588b61debda27235a
Don't start keyguard in an attempt to exit it.

exitKeyguardSecurely() will open the keyguard if it's currently disabled
by an app. As this is unwanted here (the user has either already
bypassed the keyguard or the keyguard isn't secure; otherwise he
couldn't click on a notification entry) and as the lockscreen already is
dismissed a few lines above, don't call exitKeyguardSecurely here.

Change-Id: I5582da350d8826e42f9edcd56845a59965865c8b
JIRA:CYAN-99
Fix FindBugs issues

IntProperty: Infinite recursive loop
SQLiteSession: Null pointer dereference
UsbStoreActivity: Null pointer derefence
LocationManagerService: No relationship between generic parameter and method argument
ActivityManagerService: Call to equals() comparing different types
ChooseAccountTypeActivity: Possible null pointer dereference
RuimRecords: Possible null pointer derefence

Change-Id: I9d631c50c30eb98e32cca5a5085513b6904db676
KeyguardViewMediator: Play lock screen sound sooner

When the screen is locked, there is a long pause before the lock
sound actually plays. This makes that sound happen much sooner.

Change-Id: I62547a183d68b93a33651c4078b5788d324055a9
fb: fix recents animation on new immersive mode

thanks here as well for identify the problem to Kiril.
But I changed the implementation. Beside that we give the user
the ability to setup different navbar heights IMO there is absolutly
no need to use an observer to get the status. We can fetch this
from WindowManagerService to get all needed information.

So at least this patch fetches needed values from WindowManager
and calculates in the missing heights

Change-Id: I3ae57ba0a575624f8aea75ce8d48041f5a1c1c42
fb: Quit hours 1/2 thanks cm

and added multiuser support

Change-Id: I38e8560297099629aed94ee001da7f1ebaa04dac
Merge remote-tracking branch 'upstream/kk4.4' into kk4.4