def disconnect(signal, observer)
      return nil unless observers.key?(signal)
      observers[signal].delete(observer)
    end
def disconnect(signal, observer)
      return nil unless observers.key?(signal)
      observers[signal].delete(observer)
    end
Removes an observer from a signal stack, so it no longer gets triggered.

 @param [String] signal is the name of the stack to remove the observer
   from.
 @param [#call] observer is the original observer to remove.
 @return [#call, nil] the removed observer or nil if it could not be found