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(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