(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.
I noticed that the bindings_model.rb and the metamodel_builder file both have the same comment block; it seems like bindings_model.rb should have a different comment?