Add some brokers

This is for @nchapman, @zaach, @vladikoff and @ckarlof. These are the first brokers, see what you think!

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.
I can see the temptation to do so. There is complicated logic to figure out what the right `Relier` and `Broker` to create, but is that logic duplicated anywhere?

Even if it's not, I suppose that without a factory it does add a lot of distracting details `app-start.js`.

If you want to try out a factory here, go ahead.