Add handler instance and attach any events to it.

        :param object handler: handler instance
        :param bool allow_dupe: If True, allow registering a handler more than once.
        :return object: The handler you added is given back so this can be used as a decorator.

def add(self, handler, allow_dupe=False, send_event=True):
        """
        Add handler instance and attach any events to it.

        :param object handler: handler instance
        :param bool allow_dupe: If True, allow registering a handler more than once.
        :return object: The handler you added is given back so this can be used as a decorator.
        """
        self._add(handler, allow_dupe=allow_dupe, send_event=send_event)
        return handler