PGLog::rewind_divergent_log must not call mark_dirty_from on end()

PGLog::rewind_divergent_log is dereferencing iterator "p" though it is
already past the end of its container. When entering the loop for the
first time, p is log.log.end() and must not be dereferenced.

mark_dirty_from must only be called after p--. It
will not rewind past begin() because of the

  if (p == log.log.begin())

test above.

http://tracker.ceph.com/issues/5398 fixes #5398

Signed-off-by: Loic Dachary <loic@dachary.org>