Handle swap cases of unique columns in push and merge.

The swap case happens when at least two rows in a table with unique
constraints modify the restricted columns so that their values are
swapped (usually in a sequence of operations, while giving a row a
temporal value). Since dbsync doesn't save intermediate states, and
the operations are compressed to one for each object, these cases
presented irrecoverable synchronization states.