ovsdb: Simplify referential integrity checking commit logic.
Until now, the commit-time logic for verifying referential integrity
modified row reference counts in-place. That meant that it had to be
careful to be able to roll back those changes if it did detect a violation.
This commit changes the logic to avoid making any in-place changes.
Instead, the reference counts are tracked outside the rows themselves and
committed only if the transaction as a whole satisfies the constraints.
This eliminates a fair bit of code and paves the way for implementing
weak references as well.