fix(client): We broke password managers with `autocomplete=off` on password fields!

* Always add `autocomplete=off` when the relier is Sync.
* Add `autocomplete=off` to text fields acting as passwords, otherwise passwords are displayed in a form autocomplete dropdown. Yuck.

fixes #1788
fix(signin): pass account data to broker instead of using currentUser

Fixes #1973.
refactor(views): avoid use of getCurrentUser on non-settings pages

This is a follow up to #1973 and the broader point that ckarlof makes:
> More generally, I don't think getCurrentAccount should be used except to initialize UI state. After the user has initiated a flow for an account, we should be passing an Account object with the account context to the broker as needed. This way, it would be less likely that the Broker uses the wrong account (i.e., not the one the user selected) mid-flow. This might involve a significant refactor (although maybe not, because we don't use the user that much in the broker anyway), but it seems worth it to avoid these types of bugs in the future.
fix(signin): set the current account after logging in with cached sync account
tests(travis): use npm@2.1
tests(travis): update to Firefox 34
Merge pull request #1996 from jrgm/update-travis

Travis updates: npm@2.1 and firefox@34 r=vladikoff
refactor(account): no more accountData and less usage of currentAccount
refactor(user): rename User methods and fix verification resend tests
Fix a failing functional test.

Use `FunctionalHelpers.visibleByQSA('.error')` instead of `.findByClassName('error')`
Merge pull request #1987 from mozilla/issue-1973-wrong-account-data

fix(signin): pass account data to broker instead of using currentUser

@zaach - this is immensely helpful, and a huge cleanup. Thanks for working through it with me.

r=shane-tomlinson
fix(metrics): Convert all `_` in screen names to `-`.

* Moved the screen name cleanup from lib/url.js to router.js, renamed fragmentToScreenName. The functionality makes more sense here.

@kparlante - this is for you!

fixes #1907
Merge pull request #1989 from mozilla/issue-1788-autocomplete-off

fix(client): Only add `autocomplete=off` when in sync or to text fields acting as passwords.
Merge pull request #1998 from mozilla/issue-1907-screen-name-metrics

fix(metrics): Convert all `_` in screen names to `-`.
feat: Check for required OAuth parameters on startup.

If either `scope` or `client_id` is missing/invalid, send the user to `/400.html` and show them an error message.

* Add the 400.html page.
* Check for required parameters in the OAuth relier.
* If the `client_id` is invalid, show the user `Unknown client`
* If app start detects an OAuth error, it redirects to /400.html with query parameters that can be used to log the error.
* Add server logging of parameters passed to /400.html and /500.html
* Try to simplify the error creation logic a bit.
* Add Url->objToSearchString.

Add a new OAuth error:
* 1005 - Missing parameter - it's `param` will be the midding parameter.

fixes #1740