This class supports early termination of the eviction queue processing. Because the eviction
queue is sorted by first to evict to last to evict, when iterating the eviction queue, the first time
a node is encountered that does not require eviction will terminate the loop early. This way we don't incur
the full breadth of the O(n) = n operation everytime we need to check for eviction (defined by eviction poll time
interval).

processQueues

- On AddEvents a new element is added into the eviction queue
- On RemoveEvents, the removed element is removed from the eviction queue.
- On VisitEvents, the visited node has its eviction statistics updated (idleTime, numberOfNodeVisists, etc..)