Move gameController from engine to game context

Engine will now have abstractGameController class, handling many of the
common tasks