Continuing to simplify.

* Add `completeOAuthError` to the relevant channels.
* Add a `URLChannel` which passes OAuth information over the URL.
* Attempt to simplify how the spinner is presented in the service-mixin.