fb: fix reconstruct statusbar illegal argument exception

Finally I got a logcat what is happening in rare cases. If the reconstruct
happens during a notification ticker was send it returns a negative
width value for the static layout and systemUI crashes.

E/AndroidRuntime(  970): java.lang.IllegalArgumentException: Layout: -23 < 0
E/AndroidRuntime(  970):        at android.text.Layout.<init>(Layout.java:138)
E/AndroidRuntime(  970):        at android.text.StaticLayout.<init>(StaticLayout.java:104)
E/AndroidRuntime(  970):        at android.text.StaticLayout.<init>(StaticLayout.java:90)
E/AndroidRuntime(  970):        at android.text.StaticLayout.<init>(StaticLayout.java:68)
E/AndroidRuntime(  970):        at android.text.StaticLayout.<init>(StaticLayout.java:48)
E/AndroidRuntime(  970):        at com.android.systemui.statusbar.phone.Ticker$Segment.getLayout(Ticker.java:72)
E/AndroidRuntime(  970):        at com.android.systemui.statusbar.phone.Ticker$Segment.getText(Ticker.java:91)
E/AndroidRuntime(  970):        at com.android.systemui.statusbar.phone.Ticker.addEntry(Ticker.java:226)
E/AndroidRuntime(  970):        at com.android.systemui.statusbar.phone.PhoneStatusBar.tick(PhoneStatusBar.java:2862)
E/AndroidRuntime(  970):        at com.android.systemui.statusbar.phone.PhoneStatusBar.addNotification(PhoneStatusBar.java:1432)
E/AndroidRuntime(  970):        at com.android.systemui.statusbar.CommandQueue$H.handleMessage(CommandQueue.java:322)

to avoid this check before a new StaticLayout is constructed if the width is < 0 and if this
is the case abort the operation. This is in this case a legit way due that the notification
gets reconstructed during this process later so or so

Change-Id: I6ed68bbb9226101d3573f3d76deb793ddae69627
QS: let's welcome LocationTile to 4.4

we already modified to use the basic 4.4 location mechanism. Still
it was very basic. Now using the same attempt like in Settings to
controll location mode (high accuracy, battery saving, device only) and on/off state

longpress switches between the states. Normal click turns it on/off
Compared to settings turning on will recover last state where it was turned off. As
well it respects the sharing location warning dialog either when you switch on into
a mode which use it or you switch into a mode which uses it and it was not confimed.

Slight corrections to original AOSP code to reflect the changes in LocationController
even though this code is non operational

PatchSet:
- moved the complete handling into the LocationController. Way better
  to have in centralized. Who knows for what we will use it later.
PatchSet:
- cleanup

PatchSet:
- added drawables from kroz :)

Change-Id: I3c7c51c8d7e3a8c003c37d1b55a6503a9bbeaf64
Merge "fb: fix reconstruct statusbar illegal argument exception" into kk
Merge "QS: let's welcome LocationTile to 4.4" into kk