fix(test): No longer redirect on the web channel tests.

The web channel tests redirect to the RP when the oauth_complete message is received, making it impossible to test that FxA is showing the correct screen when the flow completes.

* Use a similar strategy to the FxDesktop/Sync tests that listen for messages and add elements to the DOM. Test for the expected element's existence on the DOM.

fixes #1943
fix(client): Ensure the web-channel flows match expected behavior.

* Only the signin flow should close the window, all others should redirect.
* Add more functional tests for this case.

issue #1816
issue #1818
issue #1936
issue #1940
fix(client): WebChannel/Hello screen and event fixes.

* Ensure Hello users see the "ready" screen when an account is verified.
* Ensure the "oauth_complete" message is sent to the browser for sign up and password reset, even if the original tab is closed.
* Add more functional tests for the replace original tab and verify in a separate tab cases.

fixes #1818
issue #1936
issue #1938
issue #1940
Move the "open an external site" code to FunctionalHelpers.
Merge pull request #1945 from mozilla/issue-1943-web-channel-functional-tests

fix(client & test): Fix web channel flows to match expected behavior, add more functional tests to boost coverage r=vladikoff
fix(test): check that signin is complete before proceeding
Merge pull request #1951 from jrgm/fix-change-password-test

fix(test): check that signin is complete before proceeding r=vladikoff
fix(style): marketing snippet offset
chore(style): remove commented code
feat(client): Add the iframe flow.

* window.history.pushState is not available inside of an iframe. When FxA loads in an iframe, fall back to using the hash change event. If in an iframe, copy the pathname to the hash on startup.
* Add the oauth_iframe tests to the list of functional tests.

issue #1386
Update the "Channel timeout" string to be "Unexpected Error". Fix the web channel unit tests.
Use a cross-browser solution to parse the parent origin's URL.

Create an anchor tag, set the href to the relier's redirectURI, and fetch anchor.origin.
Use SASS variables for the fox-logo and close-button zindex values.
Merge pull request #1796 from mozilla/issue-1386-iframed-oauth

Issue 1386 iframed oauth flow
feat(test): Add more functional tests!

* Add functional tests to check users who verify by replacing the original tab, and users who verify by closing the original tab and open a new tab. This is for both OAuth and Sync, for sign up and reset password.
* Add a functional test for signing into sync with an unverified account

fixes #1935
issue #1936
issue #1938
issue #1940
issue #1816
fix(client): OAuth/redirect users who paste the verification link into the original tab should be redirected to the RP.

Save a bit to sessionStorage whenever the user signs up or initiates a password reset. When the verification tab opens, it looks for this bit. If the bit is set, that means the user overwrote the signup/reset password tab with the verification tab and the user should redirect to the RP when the OAuth flow completes. If the bit is not set, this is either another tab or another browser, and the user should *not* go back to the RP.

fixes #1816