Added Graph, GraphEdge and GraphNode classes.
Added a method to add new edges to the Graph class.
Added a constructor to GraphEdge to ensure every GraphEdge has a source and
destination.
Added getter for Edges to Graph.
Added WorldGraphFactory and World now draws its graph.
World now has a bigger graph.
FPS counter now shows a realistic value.
Graph is now drawn with a cache (for perormance).
Moved Graph classes to a Collections namespace.
Added interfaces and classes for the A* algorithm.
Added EuclideanDistanceHeuristic.
Renamed AStarHeuristic to IAStarHeuristic.
Implemented Euclidean distance heuristic.
Modified interface for shortest path algorithms.
Added AdjecentEdges property to GraphNode.
AStarHeuristic now takes a Node as an argument, not an Edge.
Added AStarGraphNode class inside the AStarAlgorithm class.
Added recursive method to AstarAlgorithm.
Renamed AStarNode to AStarGraphNode.
Added Score, BestDistance and EstimatedDistance properties to AStarGraphNode.