fix: clear unread counts on app foreground so badge doesn't ghost
The badge persisted at e.g. 15 after the user had effectively seen the
messages because the app re-painted PushService.setBadge(total) on
AppLifecycleState.paused from persisted unread counts, even when those
counts no longer reflected reality. Now:
- On AppLifecycleState.resumed: clear all unread counts and the icon
badge. App being foregrounded = user is here = everything is seen.
- After cold-start load: same. The brief load is kept so any code that
reads the provider sees a valid state, but it's immediately cleared
so the next background doesn't re-paint a stale total.
New messages arriving while backgrounded still accumulate fresh and
update the badge as before.