Move the point at which we 'buffer_all' if we've read >50% of the index.
We were doing it as soon as you entered 'iter_entries', but often you may already have enough info to return results. And for small mostly local ops, we don't need to buffer all. (This happens mostly with moderate size indexes, where the first read of the header is enough to give you the data you need, but happens to be >50% of the whole file.)