resources/static/lib/underscore-min.js: upgrade from 1.1.7 to 1.3.3

Specifically to get _.escape()
dialog.js: improved parameter-escaping
dialog.js: oops, 'var'ify that accidental global
Make the "is this your computer" screen keyboard navigable.

* For the buttons, use id's instead of classes.
* Focus the "yes" button when the screen is shown.

issue #1582
Instead of showing an error message, show a tooltip when the user types a bad password in the add_email_address and verify_email_address screens.

issue #1557
dialog.js: pass requiredEmail (unchecked) through to params
Move requiredEmail validation from state.js to dialog.js . Tests fail.

Since validation is done earlier, invalid addresses are reported as with
renderError() instead of startAction("doError"). So the tests which
watch for doError are now failing (the frontend tests named
"resources/state: start with invalid requiredEmail - print error screen"
and "resources/state: start with empty requiredEmail - prints error
screen". I don't know how to make them watch for renderError() instead.

One upside of this patch is that @stomlinson told me the three-argument
to startAction("doError"..) in state.js was a bug, as it only accepts
two real arguments. Removing it is even easier than fixing it.
Move the requiredEmail checks from resources/state.js to controllers/dialog.js. Add more tests.

* Add the startExternalDependencies option when initializing the dialog controller, if set to false, no external dependencies are loaded.  Used for testing.
* Add a new test to check for script containing emails.
* Add unit tests for tosURL and privacyURL.
* Add a testHelpers.testErrorNotVisible
* Removed the actions.js->doError and its tests, it is no longer used.
Fix the user being asked 4 times for a password when adding a secondary email to a primary account and verifying email ownership in a new browser.

* When "email_staged" is triggered, trigger it with the password.
* Rename helpers.addSecondaryEmailWithPassword to helpers.addSecondaryEmail
* Add unit tests for helpers.addSecondaryEmail
* Yak shave the unit tests to clean them up so that they are easier to follow.

issue #1555
Merge pull request #1 from shane-tomlinson/escape

Move the requiredEmail checks from resources/state.js to controllers/dialog.js. 
strengthen email/URL validation: require the objects to be strings
Add additional tests to check whether requiredEmail, tosURL and privacyURL parameters are passed to "start" when expected.
Merge pull request #2 from shane-tomlinson/escape

Add additional tests to check whether requiredEmail, tosURL and privacyURL parameters are passed to "start" when expected.
Merge pull request #1630 from mozilla/issue_1582_keyboard_nav

Make the "is this your computer" screen keyboard navigable.
Merge pull request #1616 from mozilla/issue_1557_wrong_password_error

show a tooltip when the user types a bad password in the add_email_address and verify_email_address screens.
Merge pull request #1636 from mozilla/issue_1555_too_many_passwords

Fix the user being asked 4 times for a password when adding a secondary email to a primary account and verifying email ownership in a new browser.
Merge pull request #1627 from warner/escape

improve parameter-escaping
Make the in dialog set-password flow work with requiredEmail.

* In set_password.ejs, only show the "cancel" button if not setting the initial password for a required email.
* Update required_email.js to handle the set-password in dialog flow.
* Clean up required_email.js so that it is easier to follow.
* Rename the "add_email_submit_with_secondary" message to "stage_email" - much clearer.
* Show a message whenever resetting the account password.

issue #1638
issue #1580
incremental update to ChangeLog for changes slated for train-2012.05.25
Merge remote-tracking branch 'upstream/dev' into dev