1. unpredictable timing/no-load problems caused by use of 'defer/async' on script tag. Possibly
introduced by Chrome under Windows 10. Fix was to go back to synchronous load and
observe advice here: https://developers.google.com/+/web/api/javascript
which says load the script after defining the appStart function.
2. Surely line 201 supposed to be auth2.then(updateSignIn) not auth2.then(updateSignIn())
3. Logic error in not-signed-in handling: getAuthResponse does not return 'null' it returns an empty object.