-added horrific definition-instance link system
	-instantiable definitions must declare their associated instance type
in a static initialization block
	-pairings stored in static map
	-instance pool object provides clean-ish means of getting a new
instance based on a definition
	-sanity checks enforce dual heirarchy at runtime
	-please let's discuss this, i feel like i could potentially be doing
something very wrong and horrible that would make one of the software
engineering profs yell at me
	
-added "StringID" utility class
	-maybe useful for when we need something to use a string identifier for
interfaces but programmatically only care about some integer identifier
	
-added a few other things to make stuff work with this system