Fix off-by-one error when sending closest checksum index to receiver

The binary search of chunks returns the insertion point if it can't
find the element with the preferred chunk index. Where the insertion
point is 0 <= insertion point <= number of chunks. Fix by returning
the last element if insertion point is the number of chunks.
Add logging if --defer-write and we detect file modification during verification

Also, if we detect that the file was modified during --defer-write
verification, force the checksum to be wrong, even though the previous
also worked this is more clear.