Google oauth

Sorry the PR isn't totally cohesive. I'm going to start going through each file before committing to decide whether to add it to a particular commit. Agree with what you said about this in your email earlier today, Arlandis.
If this was a real world app, I would add an index to the `email` column of the `users` table, since we are searching through the table by email.

Our app is not going to have enough users to matter, but it's a good habit to be in.