Support mutation model rules from static rule sources.

Doing this now so we can move towards removing ModelRule, which will make making improvements to the registry easier.
Support finalize model rules from static rule sources.

Doing this now so we can move towards removing ModelRule, which will make making improvements to the registry easier.
Push extraction of model rules into the plugin container.

This is needed to find rules from plugins applied by plugins (and is more correct anyway).
Replace uses of model rules with rule source classes.

The goal is to get rid of the model rules class to make evolving the model registry easier. Only benefit of this change at this point is the improved error reporting due to the strong rule identity provided by rule sources.