fix(client): Do not fail on startup if cookies or access to dom.storage is disabled.

* Work with the author of crosstab to ensure it works as expected with cookies and localStorage disabled.
* Ensure the /cookies_disabled page renders if the user reloads it while cookies are disabled.

fixes #1848
feat(client): Allow the user to restart the signup flow on email bounce.

Add two new error codes:
* 1018 - SIGNUP_EMAIL_BOUNCE
* 1019 - DIFFERENT_EMAIL_REQUIRED

Additional work:
* Add functional tests/TODOS for the bounced email case.
* Be more specific when comparing the current URL against the expected URL. `fillOutSignUp` had an error where it would not redirect if the previous test finished at `/signup_complete`
* Add 4 new verification events that are added to the event stream when a user verifies their email address.
 * confirm.verification.success
 * complete_sign_up.verification.success
 * confirm_reset_password.verification.success
 * complete_reset_password.verification.success

issue #1801
Merge pull request #1855 from mozilla/issue-1801-email-bounce

feat(client): Allow the user to restart the signup flow on email bounce.

Fixes #1801
r=ckarlof
fix(test): Ensure the web channel tests complete.

The page check in the FunctionalHelpers fillOut* functions were not correctly checking for the ? character in the URL. Updated to ensure both EOL and ? characters are matched.

fixes #1884
fix(styles): odd wrapping on choose account and reset pwd links on sign in in some l10ns
Merge pull request #1886 from mozilla/issue-1884-web-channel-test-stall

fix(test): Ensure the web channel tests complete. r=vladikoff
fix(client): Ensure the spinner stays spinning after signin for Sync/OAuth.

Add a notion of "halt" to a form. I would like this to be called `disableForm`, but that name is already taken. If a form is halted, do now allow the fields to be modified, do not allow form submission.

Add a shed-load of unit tests for the form module.

fixes #1879
fix(client): The FxDesktop broker no longer sends the `session_status` message on startup.

The call to `session_status` was originally used to determine which page the content server should start at. Firefox now opens content server with the correct page, so this call is no longer necessary.

`session_status` can cause problems. After a logout from Sync, the content server redirects to /signin and Firefox no longer expects a `session_status` message. A channel timeout occurs, and the user is immediately redirected to /500.html.

Bump the channel's DEFAULT_SEND_TIMEOUT_LENGTH_MS to 5000ms

fixes #1883
issue #1830
fix(images): optimize images with new optipng
fix(style): remove end padding from text inputs
fix(client): Autofocus on /signup works again.

PR #1855(Handle bounced emails) introduced a regression that eliminated autofocus on the /signup page unless there was a bounced email.

fixes #1891
fix(styles): show password border radius
Merge pull request #1866 from mozilla/issue-1848-localstorage-disabled

fix(client): Do not fail on startup if cookies or access to dom.storage is disabled.
Merge pull request #1893 from mozilla/issue-1891-signup-focus

fix(client): Autofocus on /signup works again.
fix(styles): spinning wheel affects button height
Merge pull request #1885 from mozilla/issue-1883-no-session-status

fix(client): The FxDesktop broker no longer sends the `session_status` message on startup.
fix(client): The Sync flow should not notify the browser of login after the signup confirmation poll completes.

The browser polls in the background for the status of the sign up completion itself, the client does not need to notify it of completion.

In addition, the /confirm screen should not transition to the /signup_complete screen, this causes a jerky UI.

fixes #1881
fix(client): Notify Sync of unverified logins and signups before the user verifies her email (regression fix)
Fix the jshint error, add unit tests for beforeSignUpConfirmationPoll
Fix the failing 'choose option to customize sync' functional test.

The test was failing because it was not listening for FxA commands and the channel was timing out when sending the `login` message in FxDesktopBroker's `beforeSignUpConfirmationPoll`

Test is moved to sync_sign_up.js where the rest of the Sync tests live.