Moved the UserRepository to a different namespace.
Refactored the requires.
The Authenticator now depends on the UserRepositoryInterface, not the implementation.
Added the AuthenticatorInterface.
The Authenticator now implements the AuthenticatorInterface.
Added the getUser to the AuthenticatorInterface.
Added the SessionAuthenticatorInterface.
Added the createAuthenticationCookie method to the SessionAuthenticatorInterface
Renamed the Authenticator class to CredentialAuthenticator.
Created the SessionAuthenticator.
Applied the authentication class changes on the Session class.
Added the createSession method to the SessionAuthenticatorInterface.
Added the findById method to the UserRepository.
Partially implemented the SessionAuthenticator.