fix: Re-apply upstream PRs #1005, #1010, #1003
Re-applies changes that were accidentally discarded during a prior
dry-run cherry-pick reset (git checkout -- .).
- PR #1005: Use HalPowerManager for battery percentage (uint16_t return
type, remove Battery.h, update theme files)
- PR #1010: Fix dangling pointer in onGoToReader()
- PR #1003: Render image placeholders while waiting for decode (adds
isCached, renderPlaceholder, renderTextOnly, countUncachedImages,
renderImagePlaceholders)
Co-authored-by: Cursor <cursoragent@cursor.com>