Add Dijkstra's shortest path algorithm

Implementation with a PriorityQueue, Edge, and Vertex classes
Add basic file utilities