Cleaned up comments in nearly all source files; extended Dijkstra to have a version of the algorithm that returns the distance of the shortest path along the actual path; put Matrix in a separate module