This interface allows developers to provide their own custom IO control for
subclasses of SceneGraphObjects. As the Scene Graph is being saved any
SceneGraphObject in the graph that implements this interface must provide
it's state class which is responsible for saving the entire state of
that object.