Use Validator to validate user properties

## Use Validator to validate user properties

### Acceptance Criteria
1. Create user validator with check on email.
1. Controller utilizes validator on POST and PUT.
1. Controller tests are added/updated to account for these changes.
1. AbstractArrayValidator is refactored to allow optional fields.