Bug 926871 - Prevent reflowing when the software button is hidden
Bug 926582 - [B2G][Contacts] The search bar will stop functioning when searching contacts in Gmail or Outlook
Merge pull request #13036 from gitmai/bug-926582-search-bar-not-working

Bug 926582 - [B2G][Contacts] The search bar will stop functioning when searching contacts in Gmail or Outlook
Bug 877718 - [Messages] Contact's correct phone number and type is displayed r=julienw

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

- Rename Utils.compareDialables => Utils.probablyMatches
    - normalizes with navigator.mozPhoneNumberService.normalize if possible
    - otherwise fallback to previous matching strategy (no non-digit => digit replacement)

- Update navigator.mozContacts.find desktop "mock" to also normalize when searching numbers

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>
Bug 929636 - Python set device tests to fail on device type, remove final traces of xfail. r=dhunt r=rwood
Bug 920261 - fix mailto links r=jrburke
Bug 931054 - [Camera] filmstrip.js access undefined preview metadata
Merge pull request #13097 from dmarcos/bug928614

Bug 931054 - [Camera] filmstrip.js access undefined preview metadata
Merge pull request #13002 from cctuan/926871

Bug 926871 - Prevent reflowing when the software button is hidden and add test cases for software button manager
Merge pull request #12992 from gaye/bug-920261

Bug 920261 - mailto links broken r=jrburke
Bug 912010 - [Keyboard][V1.2] Default Keyboard when all keyboards are de-selected - r=rlu r=garychen r=arthurcc

- Refactors `KeyboardHelper`
  - Renames the application method to `getApps`, which now caches response until the apps change
  - Adds a new API `getLayouts` to get a callback with an array of layouts.
  - Adds a new API `watchLayouts` to get a callback whenever layout settings or apps change
  - No longer calls `saveToSettings` itself when changing layout parameters.  This allows a consumer to batch operations before saving.
  - New method `checkDefaults` will make sure there is at least one `text` `url` and `number` keyboard enabled, calling the callback with anything it enabled.
  - +unit test suite.

- ManifestHelper now automatically returns a ManifestHelper for each object it contains
  - +unit test suite
  - now waits until access time to handle the language selection instead of creation time
     - this allows holding the one manifest helper and having its "name" property change with the language

- Settings Changes
  - Now uses `watchLayouts` from keyboard_helper
  - Now calls `checkDefaults` when disabling a keyboard
    - If a default is enabled opens a DefaultKeyboardEnabledDialog
  - Removed a bunch of commented out code for dealing with the old layout settings

- System Changes
  - Now uses `watchLayouts` from keyboard_helper
  - Will call `checkDefaults` whenever it can't find a keyboard to show, showing the default from `text` if it still can't find one

- Test suite
  - Moved some mocks to shared and updated require statements
  - Mock Settings now allows a "sync mode" that can call the callbacks for observers on demand.

Closes gh-12866