Speed up SpendByWriter significantly using merge ops: When chronikreindexing blocks 22000 to 221000, SpendByWriter::insert goes from 4.38s to 0.19s. When chronikreindexing the first 300000 blocks, it seems to shave off roughly 1700s, from 10059s to 8315.98s.
While writing tests it became apparent that the current `catch_merge_errors` function is insufficient, for the following reason:
1. When using merge_cf, it seems like RocksDB applies them on the fly for potentially many values, even if they've been read (and thus applied) before already.
2. This means that a previous successful call to merge_cf would be reverted by the old `catch_merge_errors`, as any failed merge op would cause all previous successful applications to be discarded, causing a sort-of spooky removal action at a distance.
The solution is to keep previous successful applications of merge operands and to return the value from just before the error occured as the result of the merge function.