fix a bug and report fkey constraint collisions w/ debug info
fix a bug and report fkey constraint collisions w/ debug info

This was an imcompletely refactored bit of code that only happens when
a local DBA action or legacy DB causes collisions.  The new REST api
rejects such requests so the collision is never created.

It is still a 500 Internal Server Error but now the stack trace includes
the constraint names and table, so the DBA can intervene more easily.

This condition is when two constraints have the same referring and
referred columns.  This is no longer allowed by ERMrest since it creates
inexplicable behavior if the constraints diverge in their other
properties like `ON UPDATE` and `ON DELETE` rules.

informatics-isi-edu/ermrest,informatics-isi-edu/ermrest