Return a (deferred) cached Koji tag name for this change.

def tag(self):
        """ Return a (deferred) cached Koji tag name for this change. """
        name_or_id = self.task.tag
        if name_or_id is None:
            return defer.succeed(None)
        if isinstance(name_or_id, StringType):
            return defer.succeed(name_or_id)
        if isinstance(name_or_id, int):
            return self.task.connection.cache.tag_name(name_or_id)
        return defer.fail()