shadow: initial support for shadow spread

we add a new API - cairo_set_draw_shadow_only () allows app to specify
whether to draw shadowed image only without draw the original image.
This facilitates app to show box-shadow with spread.  To draw box-shadow
with spread, the app first construct a rectangle with spread,
call cairo_set_draw_shadow_only (), then draw the original rectangle
without shadow