Improved traversers

Added abstract class QueueBasedTraverser holds general logic for most
traversers.
Fixed errors in InfoKeepers.
Added InfoKeeper that uses IntToBoolean fastutil map to store Boolean
values.
Changed BreadthFirstTraverser so that first node is the node we start
traverse from (to be consistent with other traversals).
ok, with your refactoring some things are getting clearer!
IIUC the ONLY differences between BFS, AllPaths and DFS besides queue priority is 
(1) Choosing whether to enq a neighbor: BFS: don't if it has ever been ENQD or VISITED, AllPaths: always enq, DFS: don't if it has ever been VISITED
(2) In DFS, we have a sophisticated findNextToVisit(). This in BFS btw will always fall through to one of the branches because of the enquing policy

So, why can't we merge all of the common code (limits, etc.) into QueueTraverser with only the above differences?