Distinct PlayerEvent and EngineEvent

DONE:
- Distinct `PlayerEvent` and `EngineEvent`
  - `PlayerEvent` are only produces by players and consumed by engine
  - `EngineEvent` are only produces by engine and consumed by player `RiskGame` state
- As suggested by Alexandre, `RiskGame` updates its state receiving `EngineEvent`
- Added missing serialization tests
- Added tests on `RiskEngine` 
- Added tests on `RiskGame`
- Removed `LeaveGame` event

TODO:
- Compute reinforcement
- Add check when moving armies after a Battle
- Add automatic armies setup in `sendGameStarted`
- Add documentation comments
- Add missing tests on Engine