Fold in Tim's fix from 5/25
Fix duplicate / race condition when gapi_authenticated is called asynchronously
Merge branch 'staging' [deploy:production]
Response field for privateNotes is 'privatenotes', duh
Merge branch 'staging' [deploy:production]
WF: Refresh the Google login periodically.
Merge branch 'staging' [deploy:production]
WF: Use localStorage for queued changes. Try to save them on reload
Merge branch 'staging' [deploy:production]
WF: Make survey save process synchronous.
Merge branch 'staging' [deploy:production]
WF: Removed debugging [deploy: production]
WF: Scoping bugfix; [deploy:production]
WF: bug fix for note queue load [deploy:production]
WF: don't let empty queues break the world [deploy:production]
WF: Implement locking mechanism to keep users from working on a survey at the same time.
WF: lockString per answer key in cookie
WF: lockString per answer key in cookie [deploy:production]
WF: Key localStorage queue on answerKey so we don't get cross-site data
Merge branch 'staging' [deploy:production]