Maze Generation and finds path to end of maze