Executes a multi-cast delegate by calling all functions on objects bound to the delegate. Always safe to call, even if when no objects are bound, or if objects have expired. In general, you should never call this function directly. Instead, callBroadcast()on a derived class.