Simplified Interface for MonadSnap context

This allows us to run the authentication process outside of a Handler, within anything that implements MonadSnap.
Do you need to write any response? I think a 401 might be enough. "Tell me about yourself" is uniquely identifying us here to an arbitrary intertube person.