Deduplicate adapter-of-installed-packages code.

Change-Id: I454ba79eddaaff86233a2cc341f4c8bebe94729e
Remove SystemSettingSwitchPreference.

We should not introduce one-off UI patterns when there are plenty of
examples where the same usage pattern (a feature on its own
PreferenceScreen with a global enable switch in the action bar) is
handled differently everywhere else (e.g. daydream, cast display,
blacklist). This makes for inconsistent UX.
Also, there are discoverability issues: As there's no other case of a
preference with an embedded control widget opening another preference
screen, users won't expect to find another screen behind it.
Additionally - but entirely subjective - the control looks plain ugly,
as the preference padding is too large for the large switch.

Change-Id: I61284e961babefa3748102b05055fb1d03b079b0
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
Hide heads up settings and show a notice if heads up is disabled.

This follows a UI pattern used at several other places, such as
daydream, screencast, profiles or blacklist settings.

Change-Id: I5635338ceccae8ba8450284d3078889333fb77c6
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
Settings: Add heads up quicksettings tile. (2/2)

Change-Id: Ib1db69671d9f5c2c6dfa019739674fee50df9340
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
Settings: Fix switch state being out of sync.

    - Since QS Tile can also set state of Heads up now,
    we have to set a content observer for the action bar
    switch.

Change-Id: I1c63fd2627a0f823eb6982456e1ed79ab84d1957
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
Merge branch 'cm-11.0' of https://github.com/androidarmv6/android_packages_apps_Settings into cm-11.0