WIP feat(oauth): Add WebChannel support

@shane-tomlinson @ckarlof feedback?

- [ ] Need to check error reporting
- [ ] Need to fix localstorage WebChannel saving
- [ ] Tests
TODO: `webChannelId` should be part of `oauth`