Information about a class, used as a way of keeping track of class hierarchy
information needed to support more complex mixin behaviour such as detached
superclass and mixin inheritance.
To all intents and purposes, the "real" class hierarchy and the mixin
class hierarchy exist in parallel, this means that for some hierarchy
validation operations we need to walk across to the other
hierarchy in order to allow meaningful validation to occur.