refactor(client): FxaClient fetches the preVerifyToken from the relier instead of from the view.

fixes #1647
Merge pull request #1772 from mozilla/issue-1647-preverify-token

refactor(client): FxaClient fetches the preVerifyToken from the relier instead of from the view.
refactor(client): FxaClient no longer takes a relier in its constructor.

* Instead of creating the FxaClient with a relier in its constructor, pass a relier instance to the functions that need it.
* Since we had to update any unit test that used fxaClient.signUp to pass in a relier, it was easy to update the tests to no longer touch the server.
* FxaClient.signUp no longer calls .signIn, the view takes care of this.

fixes #1777
feat(client): Add some brokers!

* Start to add brokers that know how to startup/complete flows.
* 3 brokers to start, fx-desktop, redirect, web-channel.
* Get rid of the Channels high level abstraction, these are used directly by the brokers if needed.
* Move some code from service-mixin and various channels to brokers.
* Update tests to make use of the brokers.
* No longer save forceEmail to Session, get it from the relier.
* Remove the "signIn" from "completeResetPassword" in the FxaClient, this is now done in the views.
* No longer call `signIn` from `changePassword`, let this be handled by the views. This allows the signature of `changePassword` to be much smaller.
* No longer pass a broker to the FxaClient's constructor, pass it in to signIn and signUp directly.
Move the re-link check to the views that need to do it and out of fxa-client.

fxaClient->signUp no longer takes a broker!
remove Session.forceAuth from fxa-client.js
Setup the webChannelId in the WebChannelBroker instead of the OAuthRelier.

* Create a search-params mixin in models/mixins.
Let the broker decide whether to auto submit on the ready screen
Start to migrate OAuth related finishing code from service-mixin to an OAuthBroker.
There is no need to call setupOAuth, this can be taken care of when the OAuth based brokers start. Pass in all needed dependencies to the OAuth broker
Instead of calling persistOAuthParams all over, call self.broker.prepareForEmailVerification right before sending out the email verification stuff.
Try to rip out some gnarliness and move it to the brokers. More work definitely needed.