Added new trait PluginWithDependencies.
Added logging message.
Added DependentClassesOrderer to calc dependencies between plugins.
Cleanup and typo fixes. Better handle already applied plugins.
Now respect plugin ordering if plugins implement PluginWithDependencies trait.