Made some refactorings

- added an enumeration called mark to define marking states
- renamed Square#isEmpty to Square#isUnmarked
- renamed Square#updateMark to Square#mark
- Square#mark now throws an exception when already marked
- Square#mark now takes a Mark value  as parameter
- Square#getMark now returns a Mark value
- renamed TicTacToe#gameTurn to TicTacToe#computeTurn
- removed useless mark parameter in TicTacToe some TicTacToe internal
methods