Settings: Improve QS tiles config code

Tile configuration has some unusual coding, like having a
public static Map (QuickSettingsUtil.TILES) to hold all
tile information.

That map is modified directly during the execution of
QuickSettings.onCreate(), which removes unavailable tiles
from this global map. Once those tiles are removed, they
are gone for good (until the runtime decides that it must
reinitialize QuickSettingsUtil.TILES).

This patch tweaks this process a bit:
 - The global TILES variable is now immutable.
 - There is a distiction from disabling and removing a tile
   - Removed tiles are those related to the device
     capabilities, and can never be enabled, once removed.
   - Disabled tiles are those related to the device state,
     like the ProfileTile, which is unavailable if the user
     has disabled the profile feature. Disabled tiles can
     be re-enabled later.
 - All code that actually removes/disables tiles is now at
   QuickSettingsUtil. The results of such operations are
   reflected on the TILES immutable view.
 - It is possible to enable tiles that have been disabled.

This changes improve [citation needed] coding style a bit,
but, furthermore, allows one to disable and reenable tiles
when needed be. For instance, enabling Profiles or Expanded
Desktop will cause the corresponding tile to be available
for selection immediately. That would not possible to
accomplish, once those tiles were removed from the available
TILES map.

Patch set 2: Rebased
Patch set 3: Rebase, refactor
Patch set 4: Check network tile availability at every resume
Patch set 5: Sort tiles at the adapter, revoke caveats
Patch set 6: Some cleanup

Change-Id: Ifd46d81a49b0ce036e9ccd6d13b6e2251ecbf42a
Let accessibility feature instructions scroll.

Change-Id: Ie0a9eae16e8bf2ea6033a9e5e4e2c149ab4859cc
JIRA:CYAN-1531
Merge "Let accessibility feature instructions scroll." into cm-10.1
Merge branch 'cm-10.1' of git://github.com/CyanogenMod/android_packages_apps_Settings into cm-10.1

Conflicts:
	src/com/android/settings/cyanogenmod/QuickSettings.java
	src/com/android/settings/cyanogenmod/QuickSettingsUtil.java
Add lockscreen rotation as an optional rotation setting (2/2)

This will allow the user to select wether or not to use the
rotation settings for the lockscreen.  This is dependent
upon the rotation setting being checked.

Signed-off-by: Michael Bestas <mikeioannina@gmail.com>

Change-Id: If45c13a395e0d71b7c4cdcf484a6b8cef964ee37
JIRA: CYAN-339

Conflicts:

	src/com/android/settings/DisplaySettings.java

Patchset: 6

http://review.cyanogenmod.org/#/c/44379/
Some Halo color options
Halo visibility when there are no notifications option
Revert "Some Halo color options"

This reverts commit c9df2111f869343c65e7eb8dc4a44aa122f0c7bb.

Conflicts:

	res/xml/user_interface_settings.xml
	src/com/android/settings/UserInterface.java
Settings: Improve QS tiles config code #2

- missing codes
Merge remote-tracking branch 'temasek/cm-10.1' into cm-10.1