Shortest Path First

Dijkstra function does a SPF to each other vertex, starting one vertex.
ShortestPath function will retrieve a list of vertices that has the
shortest path. Currently it does this by calling Dijkstra for the start
vertex and iterating over the results, returning the list from the end
index. (draft)