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