(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.
Ok, I see it now; t.size_type() returns a PIntegerType; nevermind...