Refs #38 - Create user validator.
Refs #38 - Only validate values being constrained.

Inject validator into controller and use it to validate user input.
Refs #38 - Modify tests to reflect usage of validator.
Refs #38 - Enforce unique email on update.

Use clone of user entity to avoid setting properties prematurely.
Refs #38 - Add ability to use constraints for optional fields.
Refs #38 - Define getConstraints in case all constraints are optional.
Adhere to PSR-2.
Merge pull request #38 from synapsestudios/feature/38-validate-user-properties

Use Validator to validate user properties