Moved more functions to Negamax

Moved away Tictactoe-specific negamax functions, namely the findBestMove
function to Negamax.hs and made it independent from Tictactoe so that it
could be reused elsewhere, namely in SuperTictactoe. It is still wrapped
up in another findBestMove in Tictactoe.hs to maintain comptability with
the rest of the file.

This also meant that the generateNegamaxTree function in Tictactoe.hs
was no longer necessary, as findBestMove was more opaque.
Tentatively finished with SuperTictactoe AI

Tentatively finished with the minimax AI for supertictactoe. It has not
yet been tested.
Added additional tests and misc changes

Added additional tests to make sure that SuperTictactoe is performing as
expected. Also changed depth of minimax search from 5 plies to 4 plies
to make the game move faster.