Update UserAlreadyExistsException hierarchy

This update allows code to catch all UserAlreadyExistsExceptions at once, but still provide individual exceptions for individual issues.