The first prototype.
Move logic between modules.

- now board responses for movements;
- players know only about their current positions;
Update info about occupied fields after each turn.
Add board size getters.
Add Game method to check if player wins.

Signature: bool Game::is_win(int board_side, const pos_t &pos);
Player wins when he reaches the opposite side of the board.
bool Game::is_win(int board_side, const pos_t &pos)
Show message when player reaches opposite side.
Add Board method is_at_opposite_side.

bool is_at_opposite_side(int side, const pos_t &pos);
Add field board_side_ to class Player.
Change Game inner state.

- remove board side from player list;
- implement is_win method via Board method is_at_opposite_side;

Conflicts:
	src/game.cpp
Check if player wins after each move.
End game when one of players wins.
Use smart pointers.
Change board sizes type from size_t to int.
Replace '#pragma once' with defines.

- add include quard to exception.hpp;
Remove Board dependency from Player module.
Board handles Players sides and positions.
Board handles Players.
Put typedef into namespace Quoridor.
Add class Wall.
Add walls field into Board class.

- add field walls_;
- add method add_wall;