-Changes to Engine, fixed old events because they were kind of useless. New events will be used mainly by the renderer to refresh state.
-Now the Gameloop is started with Engine.Start()
-Engine is initialized in Engine.Initialize(), this should be the place to load any previously started games, basically restore state from file.
-Extracted methods out of Engine.Run()
-Moved the singleton construct from BattleFieldMain class to Engine.
-More small changes.

-Changes to ICell interface, added position properties.
-Changes to Cell, implemented the new properties from above.
-Changes to PlayField, added a [,] indexer property for accessing ICell members at positions (X,Y).

!!! CellFactory class should fill the X,Y properties when a new ICell object is created.