systemui: SignalClusterTextView fixes and optimizations

- Optimize the SignalClusterTextView layout, but removing an unnecessary LinearLayout hierarchy
- Optimize the SignalClusterTextView view by hidding the entire view instead the cluster view
- Set start visibility of SignalClusterTextView to gone and update its state in onAttachToWindow
event. This should prevents bug CYAN-4410.
- Prevents NPE in MSIM devices when TEXT style mode is configured for the signal cluster style

Change-Id: Ib91fde693d5013bf058f161cc175923913fdfb7d
JIRA: CYAN-4410
Issue: https://jira.cyanogenmod.org/browse/CYAN-4410
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
Telenet (MNC05) considered non-roaming on Mobistar (MNC10)
wq

Change-Id: I686ac96747982a70e52d05430b38409993d5bf11
Noverca (MNC07) considered non-romaing on TIM (MNC01)

Change-Id: I473e1f88db0fe0d5e1799f6d6d892649abb7dc74
Virgin Mobile (MNC07) considered non-roaming on Movistar (MNC02)

Change-Id: I46a782aefbe62295d6ce9d3c15a2e25630bdcacc
Merge "Telenet (MNC05) considered non-roaming on Mobistar (MNC10) wq" into cm-11.0
Revert "Send broadcast when package is 'about' to be removed"

This reverts commit 238e80a5c7edcb922ce15feebec74ea2475c31cb.
This was a band-aid that is being fixed in a future commit.

Change-Id: I89a928e2fd9cff2b1992a6e85eb5c96c5b8b9b0e
Themes: Update LoadedApk resources.

Instead of creating a new LoadedApk when resources are not up to
date, we use the existing LoadedApk but recreate mResources.

Change-Id: Ic1ad810863d03c2cedc751c9e84dd7c954daf3d7
PhoneStatusBar: Readd headsup view when theme change occurs.

Change-Id: I5bbfa56650a1b2f9cd9c4365650f769bed009ab0
Merge "systemui: SignalClusterTextView fixes and optimizations" into cm-11.0
Merge "Revert "Send broadcast when package is 'about' to be removed"" into cm-11.0
Merge "Themes: Update LoadedApk resources." into cm-11.0
Merge "PhoneStatusBar: Readd headsup view when theme change occurs." into cm-11.0
Use ArrayListExtra for broadcasting theme changes [1/2]

Change-Id: I897cfbbe293b73f9e8f069f4b4cefa7c3ffb79ed
Modify config to support app specific themes [1/4]

Summary of Changes
1. The configuration now supports each app to have their own theme.
Each theme can include icons, styles (ie overlays) and font.

2. The theme config is serialized into a json string and stored
in secure settings.  This entry consolidates what was previously 3 separate
keys (style, icon, font) into a single field.

3. 'CustomTheme' was renamed to 'ThemeConfiguration'.

Note: This commit is for the configuration. Additional work needs to be done to
the framework and UI to support app specific themes.

Change-Id: I6f72f542829578201c57c54786456486f6a6e2e3
Support theming navbar separately from SystemUI

This allows using a different theme for the navbar than the theme
applied to the rest of SystemUI.  This will not affect theming until
we have the front end in place that allows users to change this.

Change-Id: I3ad4e8774ac69d1e6e1d83fa5e1ffe59b977d4e9
Add getThemedResourcesForApplicationAsUser()

Change-Id: I90b7cb441e4056f59b7260ffa55e31eba644e25a
Allow specifying a theme when creating a Context

A Context normally loads the resources associated with the given
package that this context is for.  This patch allows us to specify
a theme we want attached to a given context's resources.

Change-Id: I1e619f038566233bd89ee96eb8eb87fa6894e630
Use systemui's applied theme for notifications.

Notifications contain RemoteViews which are inflated using the
application's context for which this notification belongs to.  This
can look out of place if SystemUI is using a different theme than the
rest of the system.

This patch will use SystemUIs theme when inflating the RemoteViews,
giving us a more consistent look in the notification drawer.

Change-Id: I9514ce7fcc4858bad3d3c4190f55c1f5a1441d7c
Themes: Add icon previews to ThemesContract

Change-Id: Icbfbee3404702a29881ad4933721d8beb39bef30
BaseStatusBar: Dismiss heads up on backpress.

Change-Id: I5b6191657cf0b74d825eb653a6e82c33e0527aad