Returns all the modules that this addon class uses to load plugins
        from.
        
        :param      recurse | <bool>
        
        :return     [<str> || <module>, ..]

def addonModules(cls, recurse=True):
        """
        Returns all the modules that this addon class uses to load plugins
        from.
        
        :param      recurse | <bool>
        
        :return     [<str> || <module>, ..]
        """
        prop = '_{0}__addon_modules'.format(cls.__name__)
        out = set()

        # lookup base classes
        if recurse:
            for base in cls.__bases__:
                if issubclass(base, AddonManager):
                    out.update(base.addonModules(recurse))

        # always use the highest level for any given key
        out.update(getattr(cls, prop, set()))
        return out