Multiplayer fix
Merge pull request #8 from hwoarangmy/development

Multiplayer fix

- The client and the server both load the level. They check that the map name is the same.
- The server only notifies changes after the map load (loading what is in the level is up to the client).
- There is no more command synchronisation when the server and the client communicates. I guess it was there because the server used to send the whole map to the clients so synchronisation was probably needed. But as our commands are much lower, I removed it. We can always use it again for specific cases if it is needed (but it will slower the game much).
- There is a synchronisation between server and clients at every turn. Until every client has sent an ack to the server with the current turn, the next one will be delayed.
- I've tried to set up the full server paradigm. That means that the clients do not notify anymore what they do. Now, they ask what they want, the server computes what happens and notifies the client what he does. For example, when the client clicks on a creature, a message is sent saying that the client wants to pick it. The server checks if the action is allowed and, if he decides it is ok, he sends a messages to the clients saying that the creature has been picked up :)

Also:
- improved the code to avoid several memleaks by design, such as in rooms and render requests creation.
- Gathered the hard-coded creature prefix back into one sole location.
- Fixed the handling of goals between the server and the clients.
- Simplified some common logic about getting a player reference, and refreshing tile shapes.
- Simplified the whole level starting logic.
- Added timestamp support to log messages.
- Added a lot of missing server <-> client messages needed to make the game actually work.
- Probably even fixed a bug in the claiming logic.