refactoring and changes to take advantage of improved validation capabilities from UmlMetamodel and to provide better functionality to client plugins (like modelValidator).