osd/scrub: do not attempt to read past the end of an object
When performing deep scrubs, the scrubber reads object data
in strides. Existing code uses a short read to detect the end
of the object (and if the object size is a multiple of the
stride - an extra read is performed, which returns 0 bytes).
The proposed change is to avoid such extra read attempts,
by using our knowledge of the object size.
Also - some minor code cleanups in the relevant function.