refactor(client): Remove `language` from Session.

In an effort to reduce the "God module" factor from Session, remove `language`. Pass language in as configuration to the only views that require it - ready.js and marketing-snippet.js
fix(bug): fixed snippet layout error
Merge pull request #1422 from mozilla/issue-1421

fix(bug): fixed snippet layout error
fix(sync): show Sync brand name when signin up/in for Sync

Fixes #1339.
Merge pull request #1353 from mozilla/issue-1339-sync-flow-branding

fix(sync): show Sync brand name when signin up/in for Sync
fix(client): Ensure a down OAuth server does not cause an `undefined` error.

Lots of changes under the hood:

* oauth-client.js: Convert jQuery promises to rest of the world promises to ensure compatibility.
* oauth-client.js: Convert server error responses to OAuthError based errors.
* oauth-client.js: Non-reachable OAuth server returns a SERVICE_UNAVAILABLE error
* oauth-errors.js: Add all possible oauth error codes, whether they are used or not.
* service-mixin.js: Work with OAuthError's instead of raw JSON responses.

fixes #1344
fix(client): Display `Service Unavailable` if the user visits `/oauth/sign(in|up)` and the OAuth server is unavailable.

fixes #1399
fix(client): If logError/displayError/displayErrorUnsafe is called without an error, log an `Unexpected Error` & print a stack trace.

* Prevent users from seeing strange errors like "err is undefined"

fixes #1344
Remove the new oauth error strings.

* Remove the new strings until we have a better plan of how to handle non-user friendly strings. No reason to cause the l10n team to translate unnecessarily.
Merge branch 'issue-1344-undefined-errors'
chore(test): Update to Intern 2
Merge pull request #1419 from mozilla/remove-language-from-session

refactor(client): Remove `language` from Session.
Merge pull request #1293 from vladikoff/intern2.0

chore(test): Update to Intern 2
feat(oauth): message to native flows
refactor(client): Extract channel creation logic, rename channels, and simplify the Oauth completion logic.

* Appease jscs and jshint
* Extract all channel creation logic into lib/channels/factory.js
* Rename the WebChannel to FirefoxWebChannel
* Simplify service-mixin by checking whether a channel has a completeOAuth function. If it does, the channel knows what to do with the OAuth result and can complete the transaction. If the function returns a promise, it is asynchronous.
* Add completeOAuth to the FirefoxWeb channel.
* Create a 'web' channel that redirects after oauth completion.
* in service-mixin.js, Do NOT submit the form from context because context is called for each translation and could cause multiple submissions. Instead call submit from afterRender.

* rename fx-desktop.js -> fx_desktop.js
* rename web.js-> fx_web.js