Implement guest sign in and constraints

@gabebw @jsteiner


Yes, but since some code uses current_user in the case of both guests and users, I want to make sure that it's clear that I'm referring to the user as the user type. Do you think just require_user is enough?