Simplified Interface for MonadSnap context

This allows us to run the authentication process outside of a Handler, within anything that implements MonadSnap.
So this is very nice that we can do just MonadSnap m things now, I wonder if we couldn't simpliy the interface more.

withAuthDomain [] defaultAuthHeaders (Just myDomain) $ is quite the incantation.

If you can't simplify the interface, doucumenting what these bits mean here would be helpful.