User model and tests (including authentication)