(PUP-2860) optimizations and maintenance

This PR contains a series of refactoring, maintenance and small performance enhancements.

The biggest source line changes are caused by a refactoring of the rgen based models splitting
them into a meta model part, and an implementation part. This to later enable faster / different construction
of the meta model and mix in the implementation.

Review is probably best done per commit.
okay, that may be true of the model/model_meta and types/types_meta.

(And I'm a personal fan of the ProducerProducerDescriptor, which is a subclass of ProducerDescriptor and contains a single producer of type ProducerDescriptor :)  I'm sure there's a tongue twister in there somewhere..