Find a usable block iterator.
We will consider available block iterators in order. This property is
important so that we don't keep rescanning the same block pool id over
and over, while other block pools stay unscanned.
A block pool is always ready to scan if the iterator is not at EOF. If
the iterator is at EOF, the block pool will be ready to scan when
conf.scanPeriodMs milliseconds have elapsed since the iterator was last