Revert "PackageInfo class incorrectly referenced as a struct."

This reverts commit b9b5d8c32e738d3607eec61e5d5bd95ca1521c2e.
Fixes for clang:
PackageInfo is a class, not a struct.
String16 is contained in the android namespace. Do not namespace prefix it
within the android namespace.
Explicitly specify which std classes are necessary to prevent ambiguous
type errors. (map, set)

Change-Id: I0d01477a976e770821ebae8847f8d11b132a15d6
Fix for third party installing with HALO active

Change-Id: Ib4226d021804900f0f922cf95bb2dd49696a0d6d
Add option to hide music controls in lockscreen.

JIRA:CYAN-1566
Change-Id: Iae3dd9914b1685c6bf1e39e421372ce0bdfb93cc
Fix occasionally flickering music control widget.

The problem was seemingly related to the player abandoning audio focus
while the playback state was still set to 'playing'. In that case, the
transport control was removed from the keyguard host because it had no
listener anymore, but later was re-added due to isMusicPlaying() still
returning true. Re-adding it lead to it re-registering with audio
service, which cleared the display due to nothing being connected, which
lead to the detachment listener being called again, which in turned
closed the loop.

While this may be a sign of a buggy player app (it should stop its
playback prior to abandoning audio focus), this situation still should
be handled gracefully. Fix the problem by simply reporting no music
being played while no remote control client is connected.

Change-Id: Id6834d38bc6faa3b6455ac66b413443f85606785
Always call out to KeyguardHostView when something in our state changes.

KeyguardHostView already takes care to not add or remove the transport
control twice.
This should hopefully fix some conditions where the transport control
was still being shown although the media player already abandoned audio
focus.

Change-Id: Ib4577cdbfcea0a89efbbd0df70646afe8e677e0d
systemui: Add CONNECTIVITY_INTERNAL permission

 * SystemUI needs to be able to list interfaces if tethering is in use
   and we ask for a second tethering path to be set up (BT+USB, etc).
 * Add permission to stop exceptions in the framework and enable
   tethering thru multiple paths.

Change-Id: If7a65c31557dc2f0451f0612fb109f61e8056368

Conflicts:
	packages/SystemUI/AndroidManifest.xml