def subscribe_to_all_events(subscriber = nil, &proc)
      raise ArgumentError, "subscriber must be first argument or block, cannot be both" if subscriber && proc
      broker.add_global_subscription(subscriber || proc)
    end
def subscribe_to_all_events(subscriber = nil, &proc)
      raise ArgumentError, "subscriber must be first argument or block, cannot be both" if subscriber && proc
      broker.add_global_subscription(subscriber || proc)
    end
Subscribes a handler (subscriber) that will be invoked for all published events

 @overload subscribe_to_all_events(subscriber)
   @param subscriber [Object, Class] handler
   @return [Proc] - unsubscribe proc. Call to unsubscribe.
   @raise [ArgumentError, SubscriberNotExist]
 @overload subscribe_to_all_events(&subscriber)
   @param subscriber [Proc] handler
   @return [Proc] - unsubscribe proc. Call to unsubscribe.
   @raise [ArgumentError, SubscriberNotExist]