Issue #3591837: Return bool from PusherService::trigger() so callers can detect delivery failure
PusherService::trigger() was declared void and silently caught every Throwable, leaving callers no way to distinguish a successful publish from a network error, invalid credentials, etc. The Pusher event would just disappear with a watchdog entry.
That broke any caller whose contract depends on knowing whether the publish succeeded — e.g. a message_notify MessageNotifier plugin, which needs a real bool from deliver() so postSend()'s 'save on fail' setting behaves correctly. Same situation for retry-on-failure, fall-through to another transport, etc.
Change the return type to bool: TRUE on a successful publish, FALSE on caught Throwable (still logged, not re-thrown). Backwards compatible — callers that ignore the return value are unaffected.
Adds a kernel test for the failure path that asserts both the FALSE return and that the error is logged exactly once.
Closes #3591837