Skip no-op flushes

The `vrt_producer_flush` causes a producer to “give up” any slots that
is has claimed but not yet used.  This can be useful if the producer is
blocking other producers, which have claimed a later chunk of slots,
from being able to publish those slots.

We now only perform this operation if there are actually unused slots
that we can give up.  If there aren't, then the function is a no-op.
(Before, we would claim an entire new batch of slots and then
immediately give them up.)