shadow: rounding up scaling to 1 digit precision.

Scaling in shadow is computed based on drawing extents.  This extents
has +/-1 error.  Because scaling in shadow is used for scalling up
blurred image, small delta can be quite visible.
gl: free allocated gaussian kernel
gl: if the scratch shadow surface is already largest, use it
gl: set source _scratch_in_use flag properly