New Google auth, add logout to demo, refactor code

* Change Google demo to use OAuth2 chrome.identity.launchWebAuthFlow, so that user doesn't need to be signed into chrome
* Modify XMPPSocialProvider to not delete this.view and call this.view.postMessage('logout') in XMPPSocialProvider's logout message.
* Refactor demo code so that main.js, ux.js, and style.css all live in a demo_common folder, so they can be easily edited and stored in this same github repository.
* Get freedom-for-chrome via NPM rather than from the web.

Tested by loading the demo_google app from multiple chrome profiles and checked that:
* We can sign to the demo_google with a different Google account than we are signed into Chrome (or our Chrome tabs) with, including using a Chrome profile that has no signed in account.
* Chat between multiple profiles works
* Log out works, then the user can log in with a different Google account
* Note that it's best to test with multiple instances of Chrome launched (rather than just multiple profiles on the same instance) due to an underlying bug in Chrome's socket implementation