Gaussian blur code is not fully premultiplication-correct. So render
text as white, blur it, and then tint with shadow color when compositing.
Makes large blurs with small shadow opacity work better too.
Advantages:
- "More round" outlines especially at large widths,
- Actually faster, e.g. 4K VSE resolution, outline width 30: outline
calculation 110ms -> 40ms. At small outline widths, about the same
performance as blur based approach.
- If someone wants to make outlines "fancy" someday (e.g. mapping a
gradient across outline radius), this is trivially doable with JFA.