feat(views): Separate WebChannel

Doesn't differ yet. I was hoping to separate the commits into two. One to get the WebChannel out of `app-start.js` and the second one to actually give the WebChannel the functionality it needs.