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