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.

issue #1777
refactor(client): FxaClient.signUp no longer calls .signIn, the view takes care of this.

issue #1777
Relier is a required parameter to any fxa-client functions that need it.
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.
refactor(client): 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.