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.
I don't think the `User` PORO should be in the `MemoryRepository` module, especially given that you save it using the production repository.