An implementation for B2G to ask allow users to log in even if
Persona has not verified that the user owns the email address.

Starts with navigator.id.request({ allowUnverified: true });
When the assertion is returned to the RP, and if they are using
the Persona verifier, must be sure to include an allowUnverified=true
parameter to the verifier, otherwise it will be rejected.

Behind the scenes, when the dialog tries to stage the user, instead
the user is created immediately, an email is added in our email table,
and a stagedEmail token is created and send to the user. When
allowUnverified is true, our wsapi will also check for a staged email/pass,
and use that to allow the user to login.

(merged from commit ebe21f3e3fc9bb80f65f694b359e377ddfad64a0)
add gradients back in
(cherry-picked commit cadbdb9e175cbe9a5764e80347dfe6f98c28e613)

Conflicts:
	resources/static/dialog/css/style.css
unverified email now adds passwd to user row

this makes things a whole lot simpler underneath

(merged from commit 427052a8f908bc02344f021c85e60c19675fef6e)
fixing cef_logger.alert, and INSERT INTO user
(cherry-picked from 98f9e06930531b6199f7edd42870c5eba4eec994)
I think a recent merge removed these forceIssuer pieces
(Cherry-picked commit 56624d2320235b5418f18856b807c1f4de52f79f)
email inserted in mysql should be `unverified`
(Cherry-picked commit 270aad40591bfb659ab24ab4dfa4db0f73a86462)
Bug 823736 - objects must be stringified between gecko and user js
(Cherry-picked a5eade72a6451e4861cf7f6270085fe2f141effc)
The verifier service should be explicit about unverified email in its output
(cherry-picked commit a81a55b9d8e323f6fcad25ecd966d1d8735526fb)
authenticate with unverified email and allowUnverified

fixes #2902

(Cherry-picked commit 3c32c43e0ef7c0a4543237ac320b088f47f22cf2)
Conflicts:
	resources/static/dialog/js/modules/authenticate.js
Bug 827558 - rename native navigator.id to .mozId

(Cherry-picked commit 5b7004cdc830d28fc78e28ee29517c83216ec408)
Conflicts:
	resources/static/include_js/_jschannel.js

Original changes from include.js applied to _include.js
send a confirmation email instead of newUser email

since a user is already being created, newUser is the wrong email to
send

(Cherry-picked commit 06f94c3e2f695a9c6274ff4f52f631537a54d198)
remove unverified certs once an email is verified

fixes #2924

(Cherry-picked commit d308c0d176521124a8cac754279e10a6cb915859)
Validator should accept FirefoxOS app:// origins
(Cherry-picked commit bf15b527c138ee28817deb8dc979b00775206186)
mark password reseted emails as verified

if an email is not verified, and the user goes through the
reset password flow, then the email really should be verified.

fixes #2925

(Cherry-picked commit 06721c3483d0c474aa4af6b5c2bad5d5714a4738)

Conflicts:
	lib/db/mysql.js
removing duplicate emailInfo (wut)
(Cherry-picked commit 73cd47c1ca93cf94a93e06dd00f285fd20aad33e)
tests for verifying email after password reset

(Cherry-picked commit 649302b4bc8ea8e9fa9612d7ff2f77eb6c63f579)

Conflicts:
	tests/unverified-email-test.js
make JSON db delete old staged rows
(Cherry-picked commit b9a64140c3c6cbb4fbe99c44f611ee2e8d8dd895)