add user creation/login

object mocking for tests took so long to grok :triumph:

After going through oauth, if a user record is not found then one is created.
Creates a record in the postgres database for a user using their email, name (via google) and a randomly generated token. We're still using the old schema for the users table, `users_t`.

Finishes half of #53.