New Internal Class: StateNode

StateNode is a node for a tree of GameStates, it keeps track of important information regarding where it is and how it got there. I am currently unsure whether or not it works, as using the "self" keyword within another, larger class seems dangerous.