ADD: Board class.

The Board class is a class that represents the game board. It has a matrix of squares and has various iterators. Each "square" of the board is a whole new class - BoardSquare.

The BoardSquare class holds the position of the "square" and the Figure that stands on it (if such exists).

The BoardDirection class is created to provide useful and flexible iteration. The class supports horizontal, vertical and diagonal iteration in each possible direction. The user only provides the starting BoardSquare and the target BoardSquare and the BoardDirection class calculates the directon of the movement automaticly. It throws InvalidDirectionException if the direction is not supported.

The Board itself can be iterated by using a simple foreach loop.

Tests are covering part of the use cases of the iterators.