yes, we can drop the `hasNext()` in all `next()` methods.

The empty positions iterator just returns -1/null for all positions. I added it to avoid npe in case someone for example did not set positions flag but then iterates over positions anyway. however, now that does not seem to make too much sense. maybe instead : if no positions requested or stored, just return iterator with no elements, that is, hasNext() only returns true if the posting list is not null. would remove lots of code.