use O(1) queue during bfs traversal

The fastutil's IntArrayList used for the FIFO queue during BFS
traversal has O(N) dequeue---it shifts all remaining elements to the
front of the arry by copying.  Use the IntArrayFIFOQueue instead,
which has both O(1) enqueue and O(1) dequeue.
Merge pull request #43 from drbild/fix-bfs-queue

use O(1) queue during bfs traversal (IntArrayFIFOQueue instead of IntArrayList)