Add event by name.

        This is called for you as needed if you allow auto creation of events (see __init__).

        Upon an event being added, all handlers are searched for if they have this event,
        and if they do, they are added to the Event's list of callables.

        :param tuple names: Names

def add_events(self, names, send_event=True, event_factory=None):
        """
        Add event by name.

        This is called for you as needed if you allow auto creation of events (see __init__).

        Upon an event being added, all handlers are searched for if they have this event,
        and if they do, they are added to the Event's list of callables.

        :param tuple names: Names
        """
        if not event_factory:
            event_factory = self.event_factory

        # Create events
        self.events.update({name: event_factory() for name in names},)
        # Inspect handlers to see if they should be attached to this new event
        [self._attach_handler_events(handler, events=names) for handler in self.handlers]

        if send_event:
            [self.on_add_event(name) for name in names]