Create an index to implement a uniqueness constraint.

As part of CreateUniquenessConstraint, perform a (small) transaction that creates an index for the constraint.
This index is marked as an index to be owned by a constraint, but does not have an owner set at this point.

Introduces Transactor to encapsulate suspending and resuming an active transaction to perform a single-statement transaction.
Remove constraint indexes when removing constraints.

If a transaction that creates a constraint rolls back, we execute a small transaction that commits
removing the index for the constraint.

When a transaction removing a constraint commits, we add a command for removing the index
for the constraint as well (in the same transaction - there is no need for separate transactions here).