gl: use separate set of scratch surface for both source and mask blur
gl: bug fix for shadow
gl/msaa: proper destroy copied clip
gl: fix fragment shader when extend is CAIRO_EXTEND_NONE when using atlas
gl: save current draw/read surface to reduce _make_current
gl: revert back y-axis

on PC, for example, AMD driver, the binding of framebuffer is short,
therefore, it is beneficial to have an y-axis blur on small image,
However, on mobile driver, where bind framebuffer is much longer, it
is actually better to reduce one framebuffer binding, and instead,
let y-axis blur on the target directly, although it may result picking
more samples