Refactored some logic into generic Game methods.

+ Fixed Game.perform(), which wasn't working for simultaneous methods.
+ Added Game.possibleMoves(), which calculates all possible actions to
use with Game.next().
+ Added Game.normalizedResult(), to put different game results between
-1 and +1.