Unique contraint creation.

Prevent creating constraints and modifying pertinent data in the same
transaction. This is a simplistic solution, where we fail the
transaction when we detect that a uniqueness constraint is created in
the same transaction as data that may pertain to the constraint is
modified. In the future we believe we will have a stronger separation
between data modification and schema modification, making it
impossible to do both in the same transaction.