Game State Manager

A class which manages states in a game. When a state is loaded the class
loads all resources used in the state. When the state is unloaded, all
associated resources are also unloaded.