restore missing import
First move in reworking how CompoundModel classes get built--_make_compound_model has become a classmethod of _CompoundModelMeta, which makes some sense.  Though later it may be broken up into some subroutines, as it will be potentially useful to create new compound models from different starting points (i.e. an existing expression tree)
An important TODO note for the (hopefully near) future
Initial support for indexing on compound model instances, in anticipation of support for slicing and the like.
Initial support for returning single model instances as essentially *views* of components of compound models.  That is, can do something like compound_model['name_of_submodel'].submodel_parameter = 123 and update the compound model via the underlying component.  This is still imperfect and won't work yet for all model classes since it skips calling the model's __init__ entirely.  Need to find a way to rework model initialization (yet again) to support this case better.