New screens/weather_icons.py: vector icons drawn with PIL primitives using
the panel's actual 6-color palette (black/white/yellow/red/blue/green, from
epd4in0e's own getbuffer() quantization table) -- sun with rays, line-art
clouds, blue rain/snow, yellow lightning bolt, fog bands. Replaces the old
monochrome unicode-glyph approach entirely (also sidesteps font coverage
gaps -- that's what caused the earlier tofu-box bug).
Forecast row given significantly more vertical space per request. Caught
two real bugs while building this:
- Current-conditions block height was guessed independently of the space
allocated to it, so it overflowed into the forecast row for real content.
Now derives the space it needs from actual measured text/icon size
instead of assuming both fit.
- `scale * 0.045 if has_forecast else 0.05` -- conditional-expression
precedence bug, silently evaluated to a bare 0.05 (not scale * 0.05) in
the else branch, crashing font loading with size=0 when forecast is
empty. Only surfaced by testing that specific case.
- Sun icon's rays extended past the nominal icon_size box used for layout
math, throckwing off vertical centering when no forecast is shown.