Inflate a plugin thanks to it's identifier, definition and class.

        Args:
            identifier (str): the plugin identifier.
            definition (dict): the kwargs to instantiate the plugin with.
            cls (str): "provider", "checker", or None.

        Returns:
            Provider/Checker: instance of plugin.

def inflate_plugin(self, identifier, definition=None, cls=None):
        """
        Inflate a plugin thanks to it's identifier, definition and class.

        Args:
            identifier (str): the plugin identifier.
            definition (dict): the kwargs to instantiate the plugin with.
            cls (str): "provider", "checker", or None.

        Returns:
            Provider/Checker: instance of plugin.
        """
        cls = self.get_plugin(identifier, cls)
        # TODO: implement re-usability of plugins?
        # same instances shared across analyses (to avoid re-computing stuff)
        return cls(**definition or {})