Bug 918872 - System screen should use full highlights
Bug 913324 - Select biggest icon that fits on the screen

When launching an app, we display one of the icon defined in its
manifest. If the application defines several ones, then we need to
select the biggest one that fits into the screen.
Bug 927029 - Write a test for exporting contacts to SD Card, r=zac
Bug 927302 - [InputMethod] Cannot switch keyboard from FF Nightly. r=janjongboom
Bug 926446 - Showing/Hiding the svg blurring effect on homescreen icons is expensive during app launch
Bug 926932 - Merge the tests in test_clock_create_new_alarm.py
Bug 926920 - Merge the two tests in test_clock_switch_clock_type.py
Merge pull request #12827 from crdlc/bug-926446

Bug 926446 - Showing/Hiding the svg blurring effect on homescreen icons is expensive during app launch
Merge pull request #12867 from bobsilverberg/export_contacts

Bug 927029 - Write a test for exporting contacts to SD Card, r=zac
Merge pull request #12350 from pivanov/bug-918872

Bug 918872 - System screen should use full highlights r=samjoch
Merge pull request #12888 from yxl/keyboard-switch

Bug 927302 - [InputMethod] Cannot switch keyboard from FF Nightly.
Merge pull request #12889 from AndreiH/bug926932

Bug 926932 - Merge the tests in test_clock_create_new_alarm.py
Merge pull request #12887 from AndreiH/bug926920

Bug 926920 - Merge the two tests in test_clock_switch_clock_type.py
Merge pull request #12847 from lissyx/bug913324

Bug 913324 - Select biggest icon that fits on the screen r=vingetun
Bug 920546 - [Messages] Short-term fixes for the recipient panel

https://bugzilla.mozilla.org/show_bug.cgi?id=920546

- Decouple searchContact from list display
- Create ThreadUI.listContact(...)
- Create ThreadUI.validateContact(...)
- Adds two level validation:
    - Is the entry questionable?
        - This kicks off a silent search for matching contacts
    - Is the entry invalid?
        - This state is reached if no contacts could be found
          for the typed value.
        - Prevents enableSend
        - Prevents "export" of recipient entry at Send
          (when mixed with multiple valid recipients)
- Refactor Utils.getContactDisplayInfo logic
- Adds tests for enableSend

Changes, post review:

> Bug 1:
>  - enter a bogus recipient, press enter to "accept" it
>  - press backspace => the cursor is correctly inside the contenteditable element, but it's still "red" and the keyboard is hiding

Fixed by adding CSS rules:
  [contenteditable=false].attention
  [contenteditable=true].attention

---

> Bug 2:
>  - with the recipient light workload, that has a "Adam L. Card" contact
>  - typing exactly "Adam L. Card" => no match
>  - typing "Adam Card" => match

Yep, this has always been true. See also: https://bugzilla.mozilla.org/show_bug.cgi?id=860804

---

> Bug 3:
>  - add text in the composer
>  - add a bogus contact => the send button is enabled, should be disabled

Fixed by being more explicit in enableSend:

Set hasRecipients to true based on the following conditions:

 1. There is a valid recipients object
 2. One of the following is true:
     - The recipients object contains at least 1 valid recipient
       - OR -
     - There is >1 character typed and the value will not
       evaluate to a NaN

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>