Maximal cliques and all-pairs shortest path algorithms

I added the Bron-Kerbosch algorithm for finding maximal cliques as well as Johnson's algorithm and breadth-first all-pairs shortest path for finding paths between all vertices.

I didn't make the change, but I propose the span functions for Bellman-Ford, Dijkstra's, and breadth-first should all return paths and distance information in the same format.