shadow: transform source correctly for inset shadow in fill/stroke
shadow: handle shadow color with alpha in fill/stroke
shadow: do not draw shadow if shadow color is transparent
shadow: do not support inset shadow in paint and mask
shadow: handle non-opaque sourece pattern inset shadow text rendering
shadow: add fast path for inset shadow glyph

if the shadow color is opaque and source is solid color, we can have
a fast path for inset shadow text rendering.  The fast path is
(1) draw text with white color on a mask surface
(2) use mask surface as mask, and paint source to shadow_surface with
shadow_color as background
(3) blur the shadow_surface back to target with mask surface as mask
shadow: apply shadow color after apply source in inset shadow text
shadow: rework on stroke and fill inset shadow

Simply fill and stroke inset shadow.  For inset shadow, we first fill
or stroke the original source.  Then we create an inset shadow using
shadow color and paint the created inset shadow on top of source
shadow: rework on inset shadow text rendering
image: modify image surface to support inset shadow
xcb: rework on shadow for fill, stroke and glyphs

we draw original image first, then apply the inset shadow.  For drop
shadow, we reverse the order, we draw drop shadow first, then the original
image