Implement guest sign in and constraints

@gabebw @jsteiner


are you ensuring a user_type, or a user? Also, I would be consistent with using require or ensure, so I would probably just name this `require_user`