Added GameMap class and modified Tile-related code

Changelog:
-Overrided operator == in Tile
-Made "tile cost" explicitly dependent on  Tile's TileType instead of
passing in ctor
-Made Tile's fields private and provided getters
-Added third part Array2d class
-Added GameMap class