shadow:  compute exact bounding box for offset shadow

Instead of using imprecise _cairo_get_extents () for path, stroke pattern,
we must compute exact extents using cairo_rectangle_t.  This allows
us to save the cached shadow surface with precise scale and offset.