Refactor BFS higher-level APIs.
Refactor BFS higher-level APIs.

Previously, we had unnecessary constraints on the protocol. This
change adds a few more overloads, including support for
non-IdIndexable VertexId types.

saeta/penguin,saeta/penguin,saeta/penguin