Dto to value object

Changed BoardDefinition to value object. Removed FromStringBoardDefinition, BoardBuilder static method fromASCII now creates new instance of BoardDefinition based on passed string.

During the development I encountered two bugs. 
* isAccessibleForTank now adheres to the javadoc:"Checks whether the tank may take a given position" so we are checking if the position is within the board and if it is not occupied by some other tank.  

* There was also a bug in toString method of the BoardState - fromTop/fromLeft were mixed up and it resulted in rotated board without all tanks written to the standard output in SmokeTest
We would need something like EngineFactory or sth I think - even if you will annotate SimpleEngine with @Bean with prototype scope you still need to somehow "inject" new instance of engine every time create method is called. 

Maybe when we will have Spring fully integrated we can use Spring proxies to define factory interface and "implement" it with Spring so each time . For now I will add another parameter: Engine engine and I will move engine instantiation to SimpleGameplayClass.

Or we can just declare this class as container aware - then Spring will inject reference to IoC container and then we can ask container for an implementation of Engine interface.