Refactored communication.

Now each user authenticator mechanism runs as a separate service which
communicates with the UAService through the UserAuthenticator class.