Themes: Fix bad idmaps for system themes

For a system installed theme or a user who cleared his resource-cache,
there were empty idmaps for some packages.

[Details]
During startup PM could reach the theme package first before the target app was scanned in yet. This
would cause aapt to be skipped. Then when the target app is being installed in startup,
PM would try to create idmap pairs but it would fail since the resources from the theme
were not compiled for that target app.

Also cleaned up PM idmap/aapt creation a little bit more

Change-Id: I6a7dbd7c5d51a2d1336e3289c1e03bb3ed5d762e

Conflicts:
	services/java/com/android/server/pm/PackageManagerService.java
Protected App [1/3]
 PackageManager:
   Add support for Protected App Components
   Adding protect flag to ApplicationInfo

 SettingsProvider:
   New DB entry for protected app components

Change-Id: If04843e93b572191d4654c01f4da8f087ba9fba8

Conflicts:
	services/java/com/android/server/pm/Settings.java
Themes: Only process themes that are applied during boot

Currently, the PackageManagerService will process all themes and
ensure their resources are compiled and available to the system.
This is highly inefficient and can bog the system down when booting.

This patch will only process the themes that are currently applied
durring boot and lets the ThemeService take care of queuing up the
others for processing.   This reduces boot time considerably,
especially when the user has many themes installed.

Change-Id: I52168a1751ad3bfc458048dd1558ad71cc16317a

Conflicts:
	services/java/com/android/server/pm/PackageManagerService.java
Themes: Let ThemeService handle all theme processing [1/3]

Only themes that are applied will be processed inside of the
PackageManagerService, all others will be sent off to the
ThemeService.

Change-Id: I5f2ec628e1d22a05accc6727efb0c1387455f82f

Conflicts:
	core/res/res/values/cm_strings.xml
	core/res/res/values/symbols.xml