Makes Exceptions extend the base classes, rather than the subclasses to
avoid class redefinition errors.
Makes PluginFactories define the interface using the base class rather
than a subclass to avoid class_implements() to fail by testing for a
class not in the hierarchy.