refactor EffectiveModelBuilder into ModelOverridesResolver, and make it a component instead of a singleton. This has a side effect of making it much more consistent with the way the rest of the extension executes.