mutation_partition: Make do_compact() respect range tombstone merging rules
mutation_partition: Make do_compact() respect range tombstone merging rules

It compares only timestamps, but it should use intrinsic ordering of
the tombstone, which takes deletio ntime into consideration as well.
If we have two range tombstones with the same timestamp but different
deletion time (odd case, but still), then the one with the higher
deletion time should win. That's what all other parts of the system
use to resolve merges, in particular range_tombstone_list and
compact_mutation_state (the fragment stream compactor).

Not respecting this ordering violates the following equality:

  do_compact(do_compact(m1) + m2) == do_compact(m1 + m2)

which may results in some clustered rows being missing in the
right-hand side, but not in the left-hand side, due to differences in
range tombstones.

This impacts only tests currently.
Message-Id: <67bbade28ed76fb2bb2f9a16dd4a3bcafe93def4@scylladb.com>

avikivity/scylla,scylladb/scylla,scylladb/scylla,avikivity/scylla,duarten/scylla,duarten/scylla,scylladb/scylla,duarten/scylla,avikivity/scylla,scylladb/scylla