Fixes https://emqx.atlassian.net/browse/EMQX-9905
Since calling `telemetry` is costly in a hot path, we instead collect
metrics inside the buffer workers state and periodically flush them,
rather than immediately as events happen.
Fixes https://emqx.atlassian.net/browse/EMQX-9536
Note: since GCP PubSub is not shared by any authn/authz backend,
there's no need to separate its connector into another app.