(/=) Primary key constraint violation error handling improved

In structure connection:
(/=) throw more specific exception for duplicate primary keys

TableConnection:
(/=) catch the key constraint violations in the insert to differentiate
them from real physical errors.
(/=) re-throw exceptions if they are already SQLPhysicalExceptions.
This gives more useful traces to the place the error actually occurred.
(/=) Don't export classes only relevant to the implementation