Led Settings : Hex input for colorpicker

Allow users to specify hex color codes

Change-Id: I644b624d569e5c2fbb0fc48683c73041b4193d27
Fix dialog state handling.

Convert ApplicationLightPreference into a DialogPreference to correctly
manage the dialog lifecycle, e.g. when rotating the device. Also save
the user-defined color in case the dialog was open.

Change-Id: Ife00e1c4737fbf6710ccdaa1252def00f2831af3
JIRA:CYAN-914
Fix light settings dialog being unusable in landscape.

Change-Id: I38eeeafd1d8260ab4a7c8de9099a7e270c1462f2
Fix dialog not opening for app-specific notification light settings.

Change-Id: I8e8d098bcc07824803b9e9931595f5c4fdbabb7b
Colour picker text input field: wrong content due to alpha channel.

The field was, effectively, showing AARRGG instead of RRGGBB due to
the alpha component being non-zero. This change fixes that in a
generic way which allows for alpha channel handling even though I see
no use for the alpha channel for the notification light.

Change-Id: I5b71340f3b644c6f6b305dc66d1285cc77427bf5
Notification Light: Fix apps with same name not showing up

Applications with the same name didn't show up in the
notification light add-app-dialog (with Facebook's "Messenager"
and Google's "Messenager" being the prominent example here).

This happend due to the fact that the list of applications
was sorted by names only and inserts with collisions were
dropped.

This commit refactor notification light settings to use packages
instead of application semantics. Further the list of packages
is now ordered by human readable name followed by package name,
which avoids the collision.

Additionally we handle situtations gracefully where a package
has more than one launcher activity (Again for example,
Google's "Messenger" and "Google+" is in the same package).

Bonus: potential race condition in the list adapter was
fixed, concurrent semantics were emphasized, unused imports
removed.

Change-Id: I87ad32f535ca866883df337432d1b0cecc9485a8