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.
Same comment here about the `User` class. Wrapping database objects is fine and I can see why you would have to do that here to keep the return values of the repositories consistent, but if `User` is gonna be consumed by the `ARRepository` then it shouldn't be in the `MemoryRepository`.