a cache of emitted components for the current property; Class -> Integer
also necessary to avoid infinite regress by tracking
the depth of data recursion
candidate UID property names; presence of one of these with a
supported type (String, Long, long) will stop
the reflect code from chasing the superclass chain any further
except to find additional properties (not classes)
a ReflectedClass is created by MapGenerator instances for
every class encountered, from map.addClass(), while chasing the
superclass chain, or grokking properties
a ReflectedProperty is made by an instance of MapGenerator
to model properties of Reflected classes;
basic properties are handled here: primitive, enum, custom;
subclasses handle more involved cases