WIP feat(oauth): Add WebChannel support

@shane-tomlinson @ckarlof feedback?

- [ ] ~~Need to check error reporting~~ https://github.com/mozilla/fxa-content-server/issues/1513 
- [x] Need to fix localstorage WebChannel saving
- [x] Tests
> Does source not give enough info?

We kept it as `closeWindow` because we want to have the flexibility on the content server. 
Closing the window might not always depend on `source`.