Improvement for VersionList.MoveCurrent()

It was possible after a race that the _current field would not
actually point to the last readable version. This is a serious issue,
since it would make certain writes invisible to new transactions,
and if they conflict with them, then retrying them would NOT help -
they would again read the faulty _current, thus again not seeing the
writes that they conflicted with! Only a write which would manage to
avoid conflict with invisible versions would eventually correct this,
but in the meantime, infinite loop.