Implemented the State Pattern for the different Authentication states.
Base class is AuthenticationState, the implementations are AuthenticatedState and UnauthenticatedState.