implement server-side sasl

this commit separates client-sasl from server-side sasl. Once this is committed, I can clean up the client code. Additionally it fixes the not fully correct implementation of XOAUTH2