buffer: use empty tiles when filling buffer with 0-valued color
In gegl_buffer_set_color_from_pixel(), if the pixel data, after conversion to the buffer format, is fully zeroed, use clones of the global empty tile for filling whole tiles, instead of creating a new 0-filled tile. This allows us to share memory with the global empty tile, and makes uncloning the affected tiles more efficient. Note that we deliberately don't just clear the corresponding area of the buffer in this case, and make sure that there are actual empty tiles in the requested area, to stay on the safe side (mostly w.r.t. user-provided tile handlers, which may create non-zero tiles when the underlying handler returns a NULL tile).
Showing with 78 additions and 61 deletions