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
There are subtle differences, they aren't actually the same for all dialects. I'd like to discuss a refactoring, but I think its important to get the work in now and refactor later?