Game state is now initialized for real.
We were not creating the board.

@gabrielelana: To test init/1 in isolation I have moved there the
creation of the state, instead of doing it in the start_link/0. What do
you think? Probably this is the OTP way but the second parameter of the
gen_fsm:start_link/3 now is useless.
waiting_for_players now expects a From = {pid(), reference()} and uses
it to reply with gen_fsm:reply/2.

The waiting_for_players/3 signature is quite long and I am not sure that
the indentation I have chosen is the best one. I will think about it
tomorrow also looking at other people code.
Using real pids in tests to make Dialyzer happy

Some other things has to change to make it really happy. :-)
Tick message from string to atom
game:handle_info/3 now forwards the tick message to the play state
Removeing testing macros because they are not used anymore
Added a test for player which receives a request to join a game and
changed the join to send a message to the player process because it is
him that has to send messages to the game process. Before this change it
was in process (causing for example the shell asking a game to let the
player join). Concurrent programming is not that easy :-)
Merge pull request #2 from MirkoBonadei/putting_together_the_pieces

Game state is now initialized for real.