Game States Redesign

Game states no longer exist as object classes, instead states are saved
in GameStatesData.xml. The file contains a root element
"GameStatesData", where the names of child elements represent the names
of states and the attribute "val" holds the state's value.

Game states are no longer stored in memory; whenever a state is queried
or altered it's loaded from the file at the beginning of the process and
saved back at the end.

During a save operation the contents of GameStatesData is saved into the
GameStateManager element of the save file; and during a load operation
the GameStateManager  is copied into GameSavesData. The GameSavesData
file exists to store data during play and belongs only to the current
playthrough.

State listeners are stored in GameStateManager's _itemsList as pointers, along with the name of the state being listened to.