First cut at modifying MVCC semantics

Regular MVCC snapshots now see rows only locked by the snapshot's own XID, iff
the originating xact committed.  When the row is updated, the original row
version is no longer "just locked", and thus the original row isn't visible.

The idea here is to solve the problem of no row being visible to our snapshot,
even as it is locked.