sstables: compaction/scrub: prevent infinite loop when last partition end is missing
sstables: compaction/scrub: prevent infinite loop when last partition end is missing

Scrub compaction will add the missing last partition-end in a stream
when allowed to modify the stream. This however can cause an infinite
loop:
1) user calls fill_buffer()
2) process fragments until underlying is at EOS
3) add missing partition end
4) set EOS
5) user sees that last buffer wasn't empty
6) calls fill_buffer() again
7) goto (3)

To prevent this cycle, break out of `fill_buffer()` early when both the
scrub reader and the underlying is at EOS.

scylladb/scylla,scylladb/scylla,scylladb/scylla,scylladb/scylla