Adds a virtual destructor to IGame.

Using an implicit destructor in an Abstract class disable the chain calls to derived classes destructor when the static type of the object is the abstract class. 
Since IGame is a base abstract class, a virtual destructor should be declared and implemented (even if it does nothing like there).