osd: Refuse to commit/rollforward beyond end of log.
In optimised EC, if transaction is applied to all shards, followed by a
partial transaction AND these two transactions overlap, then it is
possible for the non-primary shards to commit a version which is after
then end of the log.
This commit changes the apply_log such that the commit version will be
changed to the head of the log in such situations.