fix(client): Go to the /cookies_disabled screen instead of the /500 screen if cookies are disabled.

The User model was accessing localStorage directly which causes most browsers to except. If localStorage is disabled, create a Storage object with a NullStorage backing instead.

fixes #1919
Merge pull request #1920 from mozilla/issue-1919-cookies-disabled-explosion

fix(client): Go to the /cookies_disabled screen instead of the /500 screen if cookies are disabled.
chore(changelog): manually update changelog for 0.26.2
fix(tests): fix avatar crop transition.

Fixes #1836
fix(tests): update sauce tests to firefox 33
Merge pull request #1925 from vladikoff/bumpff3

fix(tests): update sauce tests to firefox 33
Merge pull request #1924 from vladikoff/avatarFix

fix(tests): fix avatar crop transition.
fix(client): Show the back button for reset_password, even if an email is on the URL query string. Generalize whether the "back" button should be shown.

In `/reset_password`, the `email` query parameter was used as a proxy to indicate whether the user has directly browsed to the page. If the user directly browses to the page, the "back" button should not be shown.

Proxy checks are never a great idea. Instead, use an explicit flag that says whether the user can go back.

Logic:
* The first FxA view displayed cannot go back.
* Subsequent views can go back.

All views that have a back button only show the back button if the user can go back. If the user directly visits a page with a back button, the button will not be shown.

Another considered option:
Check if window.history.length > 1. If so, the user can go back. This was strange if users visited a page with a back button from an external site. A user could click "back" and go back to the previous site, not really expected.

Other work:
* Ensure there are functional tests for the existence/non-existence of the back button on pages that have them.
* Extract the delete_account related tests from settings into its own module.

fixes #1917
feat(metrics): Add the `isMigration` field to the reported metrics.

Only reported for FxDesktop. Sent when the browser is migrating a Sync user.

See https://bugzilla.mozilla.org/show_bug.cgi?id=1100666

fixes #1906
feat(metrics): Add the `campaign` metric.

campaign is used by the Desktop Fx crew to indicate which campaign they are running.

fixes #1792
refactor(storage): instantiate localStorage from a factory

Fixes #1921.
Merge pull request #1923 from mozilla/issue-1921-refactor-localstorage

refactor(storage): instantiate localStorage from a factory

r=ckarlof
Fixes #1921
fix(docs): add Bower usage to CONTRIBUTING
Change `isMigration` to `migration`, expect a string.
refactor(client): Remove oauth_sign_in and oauth_sign_up, their functionality is completely handled by sign_in/sign_up and the brokers.

fixes #1841
Merge pull request #1928 from mozilla/issue-1906-isMigration

feat(metrics): Add the `migration` and `campaign` fields to the reported metrics.

I see two thumbs up, one from @kparlante, the other from @zaach. double r+!
Merge pull request #1927 from mozilla/issue-1917-back-in-reset-password

fix(client): Show the back button for reset_password, even if an email is on the URL query string. Generalize whether the "back" button should be shown.
Merge pull request #1932 from mozilla/issue-1841-remove-oauth-views

refactor(client): Remove oauth_sign_in and oauth_sign_up, their functionality is completely handled by sign_in/sign_up and the brokers.
sketch of AB testing
ABify avatars