Registers the inputted addon to the class.
        
        :param      name    | <str>
                    addon   | <variant>

def registerAddon(cls, name, addon, force=False):
        """
        Registers the inputted addon to the class.
        
        :param      name    | <str>
                    addon   | <variant>
        """
        prop = '_{0}__addons'.format(cls.__name__)
        cmds = getattr(cls, prop, {})

        if name in cmds and not force:
            raise errors.AddonAlreadyExists(cls, name, addon)

        cmds[name] = addon
        try:
            if issubclass(addon, cls):
                setattr(addon, '_{0}__addonName'.format(addon.__name__), name)
        except StandardError:
            pass

        setattr(cls, prop, cmds)