Fixed cabal file

Fixed cabal file so that it has SuperTictactoe.hs as a requirement
Made getInput more robust

Before getInput would fail on an incorrect parse. Now it is replaced by
getInputWithRetry which will retry and prompt the user for a new string.
Made game input more robust

Now the game won't crash on invalid inputs and invalid moves. They will
prompt the user to submit a new input.
Changed pre-commit hook to fail on failed builds

Originally, if cabal failed to build a file, it would still run the
tests and those might succeed based on an old version of the file. Now
if cabal fails to build a file, the entire git commit will halt.