Add RegisterUserCommand
Add IdentityApplicationService
Add nextIdentity() method to the UserRepository interface
Implement registerUser() method on the IdentityApplicationService
Throw Domain Exception if value is not unique
Add a DomainException exception
Add Domain Events package
Add HasEvent trait
Finish off user registration service