WIP: Add OAuth->browser plumbing.

I don't know about this factory for channels. It seems like an unnecessary level of abstraction, especially since the API is weird. Sometimes it looks at `options.context` and otherwise `options.webChannelId`. I would just keep `app-start` the same by invoking the constructors and have `_createChannel` just call the `WebChannel` constructor. If a factory becomes necessary in the future to manage complexity we can add it. Right now it seems like it makes something simple more complex.