crimson/osd: introduce RollbackOrchestrator to OpsExecuter.
If the execution of an `OSDOp` fails, we're left with potentially
altered `ObjectContext`. We deal with that by reloading `obc` if
there was any modification to it. To figure this out, `has_seen_write()`
on `OpsExecuter` is being called. Unfortunately, the current impl.
has following drawbacks:
* `has_seen_write()` can be called after `std::move(ox).flush_...()`
which is very inelegant;
* it requires catching both `ObjectContext` and `OpsExecuter` while
the latter already references the former;
* there is no explicitly given reason in the header for justifying
the presence of `has_seen_writes()`.