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
(cherry picked from commit ad0bf992cd379a32de18b9a4bb765757db8af986)

Conflicts:
	apps/homescreen/test/unit/homescreen_test.js
	apps/system/test/unit/homescreen_window_test.js
Merge pull request #13115 from RudyLu/keyboard/Bug928281-keyboard_OOP

Bug 928281 - Run keyboard app Out-of-Process (OOP). r=timdream(cherry picked from commit 9c6586d85d4340600ace0aa69f5741c5f3f67970)
Bug 931977 - [Keyboard] Ensure first keyboard shown is properly initialized - r=rudyl

- use the `setKeyboardName` during first keyboard load
- Renabled TBPL test

Closes gh-13192
(cherry picked from commit b6221a5ecdeb1252c42f6a7b5628c90c1888346b)

Conflicts:
	tests/python/gaia-ui-tests/gaiatest/tests/tbpl-manifest.ini
Merge pull request #12942 from flodolo/bug928347

Bug 928347 - Add missing strings in settings.en-US.properties, r=evelyn(cherry picked from commit 00069a6081f7be9464f3c28c09fc6cc640d8dd19)
Merge pull request #12986 from brendandahl/pdfjs-0.8.629

Bug 929059 - Update pdf.js to version 0.8.629.(cherry picked from commit 0ae839dd13dec1f4b13e6c9fde7d2899af7fe690)
Bug 910854 - [Clock] Reduce analog face resizing from 4 sizes to 3 sizes

r=jugglinmike
(cherry picked from commit 35f9bfb58c21b43b413eba97d35ae32d8690f4aa)
Merge pull request #12846 from rexboy7/fix-bug917344

Bug 917344 - [Dialer] Turn off speaker if bluetooth headphone is connect...(cherry picked from commit 7d7864ce51f3faac0f8f55e487a10ba5b58d226c)
bug 894270 - [Dialer] switch photos correctly when switching calls.
              Show detail info of participants correctly on multi-calls.
(cherry picked from commit ad79e2a2b3076c74d7ebbca402723e2a3d7254cb)
Merge pull request #13165 from rexboy7/fix-bug930944

Bug 930944 - [System] Don't turn screen off after poweroff animation(cherry picked from commit 1a5daa90ac49e1e83dc7902acc461acdb3606dde)
Merge pull request #13090 from etiennesegonzac/bug-917222-dialing-twice

Bug 917222 - Making sure we're never dialing the same number twice. r=rik(cherry picked from commit d3173ac843208ce14cd74aba5c0420c50b81b4a1)
Bug 925961 - Use the email address parser for showing bubble properly.
(cherry picked from commit e363d38cde26a6416cb9926c04896866bba4b88a)
Bug 914593 - Only show search engine selection if more than one search engine defined
(cherry picked from commit feeb41a4d8c249ee06bbf8e8e3b643bc4d217e35)
Merge pull request #13189 from fcampo/bt-imported-contacts-925858

Bug 925858 - Received contacts from Bluetooth are not shown on the contact list (r=bkelly)(cherry picked from commit c15445e4c5ee863a5c9ac377553d290ab428f314)
Merge pull request #13228 from fcampo/export-retry-928990

Bug 928990 - Retry on export error takes to wrong screen (r=bkelly)(cherry picked from commit f04deda9c1df3acffe53e3105a09884be6df24f0)
Merge pull request #13173 from crh0716/929792

But 929792 - Add a observer on keyboard name changes r=evelyn(cherry picked from commit cfe7247433555a81d9347dbc0c3e258a7dbcbadc)
Merge pull request #13158 from crh0716/911701

Bug 911701 - Show data signal strength when connecting to EVDO r=alive(cherry picked from commit 974eb062c9ca51d770de51bb2e9c9cce1c4ed5f2)
Merge pull request #13252 from mpizza/Bug_930817_fitText

 Bug 930817 - [B2G][1.2][l10n][Keyboard] Long words in the Auto Correct ... r=rudyl.(cherry picked from commit 412fd463bcb81f0e8bebf6d32500d0c02712748d)
Uplift bug 912010, 928281 and 931977
bug 925970

* Get rid of slight shift from placeholder e.me elements and actual when in use.
* Specify font-family to use, this is unfortunately a must as we do not map our light font versions to CSS standard names.
* Degrade to older known fonts to support devices from partners that use incorrect fonts (and there are many).

r=peterla
Merge pull request #13270 from nullaus/awesome-bar-ui

bug 925970