SIGN IN SIGN UP

Fix API behaviour that finished features got wrong

Features that were in place but did not follow the API:

- Resale gift purchase: the payment form's price is compared with the one
  the buyer saw, and a changed price is asked about again, as tdesktop does
  ("Price change!").
- Gift service texts: the prepaid upgrade message is told by prepaid_upgrade,
  not upgrade_separate; its amount is the upgrade alone, and a separately
  paid upgrade is no longer added to the gift's price. "received from X"
  variants as in tdesktop.
- t.me/<name>/s/live opens the peer's stories instead of story NaN.
- channelFull.send_paid_messages_stars: a user exempted from the fee no
  longer sees the price, and the exemption survives a reload of the full
  channel.
- TON amounts in suggested post blocks are converted from nanotons.
- The Channels and Bots search tabs ask contacts.search for channels or bots.
- Login email: a pattern with a space is no email, promo data is refetched
  on updateConfig, and the setup popup closes when the requirement goes.
- Stories of a top correspondent who is not a contact: "Remove from Recent"
  (contacts.resetTopPeerRating), as Android does, instead of hiding them to
  the archive.
- A rarity of 0 permille reads "< 0.1%".
- Chats from payments.uniqueStarGift are saved.
- min users and channels are named through input*FromMessage: messages are
  remembered per peer that is not fully known, as tdesktop does, since a
  min access_hash is accepted by a handful of methods only.
- isMonoforum sees channelForbidden.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
E
Eduard Kuzmenko committed
fa397384537ce2440544025a60830deeb5da3330
Parent: 5d76583