PGLog: delete old entry if the most recent remaining entry is a delete

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGLog: allow for empty pg log in update_range if log_tail == eversion_t()

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: no need to clear repop->*obc

Signed-off-by: Samuel Just <sam.just@inktank.com>

Conflicts:

	src/osd/ReplicatedPG.cc
ReplicatedPG: fill in ctx->obc in simple_repop_create

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: src_obcs can now be empty

Signed-off-by: Samuel Just <sam.just@inktank.com>
PGLog: we cannot rollback past a recovered object entry

We don't recover the older versions, so we can't do a rollback.
In general, this is ok since we had enough copies to recover it
in the first place.

Signed-off-by: Samuel Just <sam.just@inktank.com>
ReplicatedPG: only advance last_backfill to head objects

If we rollback the log entries which created the clone at
last_backfill, it won't get rerun on the replica.  Instead,
only advance last_backfill when we hit head (or snapdir).

Signed-off-by: Samuel Just <sam.just@inktank.com>
osd/: allow multiple reads at once in PGBackend atomic read interface

Signed-off-by: Samuel Just <sam.just@inktank.com>