* Dijkstra now takes a generic “Problem” type, which contains
	* a function to check whether a given vertex is the goal vertex
	* a function to compute a new cost given a previous cost and an edge cost
	* an initial cost
  This allows us to use generic costs, like the one currently used by the agents ( which is based on energy and turns spent)
* Provided wrappers for Dijkstra in PathFinding module, along with an implementation of a path cost