Support for polymorphic model fields

* New type PolyModelType supports import conversion into one of
a number of model classes based on what the data looks like.

Accompanying features:

* Field objects have a new attribute 'name' reflecting the name
under which they appear within their models.

* Each model class now contains a registry of its subclasses,
accessible via the attribute `_subclasses`.
Added 'allow_subclasses' keyword option
PolyModelType final commit