Removed mutable from member storage of optional::Value
Untracked layout file
Multiple changes to GameBoard

Moved the implementation of PieceLayer into a separate cpp file, and
prevented implicit instantiation for the types Unit, Character and Structure.
These three types are explicitly instatiated in the appropriate cpp file.

Added type TerrainLayer, that associates Positions to terrain types id.
x_size and y_size from GameBoard are now part of it.

GameBoard isPositionValid is now called isPositionInside, and calls
isPositionInside from its TerrainLayer member.
Added types TerrainDictionary and TerrainType

TerrainType contains the data that makes a specific terrain type.
Right now, they amount to its movement cost.

TerrainDictionary associates a TerrainType to a unique integer id.
Updated project file
Project file update

Added source file for the type TerrainLayer
Added source file for the type PieceLayer
Added source file for TerrainDictionary
Fixed uninitialized memory in the TerrainLayer map
First prototype

Pieces can be moved by clicking on them and clicking somewhere else
Middle mouse creates a new piece at mouse position
Any other mouse click deselects the current piece

Added a terrain rendering layer below the pieces. The grids used
by pieces and terrain tiles are not graphically aligned.
Merge branch 'Terrain' into develop

The GameBoard can now track an additional layer of terrain.
Each position is paired to a terrain id, that can be
given to a TerrainDictionary to retrieve a corresponding
TerrainType.
TerrainType holds the values for the statistics of the terrain.