Each node in the cluster has a QueryBox instance. The QueryBox keep the active lazy iterators
(actually it keeps the DocumentExtractor of the searches) on the cluster, so it can return values
for the queries in a "lazy" way.
When a DistributedLazyIterator is created, every nodes creates a DocumentExtractor and register
it in your own QueryBox. So, the LazyIterator can fetch the values in a lazy way.
EVICTION: Currently the QueryBox keeps the last BOX_LIMIT DocumentExtractor used... probably
there is a better way.