expose depth of nodes after BFS traversal
free memory during graph construction
expose array of nodes
DO NOT MERGE: remove unused codes paths from bfs traverser
DO NOT MERGE: add access to unboxed edge list arrays
DO NOT MERGE: avoid boxing when iterating edges in BFS