ReplicatedPG: disallow trans which atomically create and remove an object

There are a few problems with such a transaction:
1) We don't really have a way to represent it in the log
2) How does it affect snaps?
3) In finish_ctx, it means we cannot assume that if we are saving snaps
on a snapdir we must be creating the snapdir.

For now, we'll just disallow such a transaction.

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: if !obc->obs->exists, lock snapdir obc if exists

Otherwise, backfill might slip in during a copyfrom.

Fixes: #7728
Signed-off-by: Samuel Just <sam.just@inktank.com>
Merge remote-tracking branches 'origin/wip-7728' and 'origin/wip-sam-testing2' into wip-sam-testing