Refactor ModelGroup#assign_models to be more performant

The sub no longer loads all model objects in a model group. In the case
where a user called assign_models() a bunch of times individually with
a single model, it will be slightly slower (more DB overhead). In the
general case however, it should be substantially faster.