fix(ui): word-break long email addresses
fix(tests): Fix Safari focus issues. Fixes #1049
Merge pull request #1107 from mozilla/issue-1013-long-email-wrap

fix(ui): word-break long email addresses

Beautiful. Tested in all the pages @pdehaan links to in #1013. They all look good with really long email addresses.

r+ Thanks @zaach!
Merge pull request #1108 from vladikoff/issue-1049-safari-fails

fix(tests): Fix Safari focus issues. Fixes #1049

Get's my stamp of approval, thanks @vladikoff!

r+
Update CONTRIBUTING.md with git commit guidelines

Avoid the problem in #1123.
feature(build): Pre-build static pages and CSS for each locale.

* Generate copies of static pages for each locale. Replace links to localized resources (like CSS) with their prebuilt equivalent.
* Generate one CSS bundle per locale. The CSS bundle will contain the correct fonts for the locale.
* Serve up the css files based on the user's language.

Tangential changes:
* Alphabetize the dependencies.
Update shrinkwrap for grunt-connect-fonts, connect-fonts-firasans and connect-fonts-clearsans
cleanup(build): Ensure the correct server configuration files are loaded when generating locale specific resources.

* Run `selectconfig` earlier. selectconfig adds the server configuration under the `server` namespace in the grunt config.
* Add `configure_connect_fonts` which configures the languages to use in the `connect_fonts` task.
* Use `path.join` instead of manually creating path names for the font files.

BREAKING CHANGE:
* `production.json` will need to be updated with the list of locales to enable before running `grunt build` to create server resources.
fix(server): All localized resources are stored on disk by locale, not language.

Additionally:

* Add a 'helper' configuration item: `are_dist_resources` - returns `true` if using dist resources.
* Add i18n.normalizeLocale and i18n.normalizeLanguage.

Cherry-picked from: 53fc6496760d627e27d4fd7f1d7485a0225c61a9

Conflicts:
	grunttasks/autoprefixer.js
	grunttasks/connect-fonts.js
	grunttasks/l10n-generate-pages.js
	server/templates/pages/src/404.html
	server/templates/pages/src/500.html
	server/templates/pages/src/503.html
	server/templates/pages/src/index.html
	server/templates/pages/src/privacy.html
	server/templates/pages/src/terms.html
cleanup: Use path.join instead of manually creating path names.
fix(build): Create localized pages for all locales.

* Add all locales to the default list of supportedLanguages so production builds can occur before production.json is created.
* Use the newest version of grunt-connect-fonts which ensures arrays are not mutated.