make UniqueConstraintError inherit ValidationError

Unique constraint errors are in fact a different type of validation
error, run on the database level. While important to make a destinction
internally when we have encountered a UniqueConstraintError vs a normal
ValidationError, on the user side they should be represented the same.
This patch allows these exceptions to provide data in the same fashion
making it easier to uniformly process the errors
Phew, thanks for removing this uglyness and doing all constraint handling in one place! :)

Can we remove uniqueConstraintMapping completely, or is it used somewhere else?