remove UniqueConstraintError in favor of ValidationError

Unique constraint errors are in fact a different type of validation
error, run on the database level. Creating a specialized error for
this case adds needless complexity for users when a ValidationError
already occurs. This patch aims to replace UniqueConstraintError
completely with a ValidationError.