Refactoring board to be one-dimensional array and updating MoveForm
Refactoring board template and disabling button after move
Implementing AI move: checks first if AI can win, if not, checks if human can win so it can block that move. Otherwise return best possible move
Updating make_move view to check if we have a winner, returns a winner if there is a winner
Passing corner value to context
Fixing winner bug. For human move, call winner() instead of find_winner_move()