This patch concerns the Telegram integration. Currently, we always try
to process commands when we receive a hook from Telegram. To do so we
rely on the `text` parameters from a Telegram message but the
API documentation tells us this parameters is actually optional. It
means sometimes it’s not present in the payload we receive but we still
try to access it resulting in a crash.
This patch addresses the issue by simply returning early from the
`#process_command` method when `text` is missing from the payload since
we don’t have anything to process then.
This commit centralizes 'display name' generation into a helper, and updates it to respect core preferences for `enable_names` and `prioritize_username_in_ux`.