Implemented A* + Maze Generation, Ghost+Maze classes

Added A* using custom heap (priority queue) for Ghost AI (for finding the shortest path between 2 nodes; only works for grids)

Added Maze class as well as a random maze generator; takes in desired dimensions and creates a maze that has no dead ends  (degree >= 2), no 4-cycles (open areas), and no walls separating different parts of the maze (connected)
The maze also has basic functions to check where the walls are, the degree of a square in the maze, the dimensions of the maze, and convert between the location within the maze and the true global position in the window.

The Game and GameState classes also contain code to test both algorithms; it generates a random maze, and whenever a position in the maze is clicked the shortest path from the origin  to this point is traced on the maze.

(May completely change the direction + scope of the project in the next update, current version only commited for the sake of saving a working version of the algorithm)