Fix safari slow re-paint bug: no deleting existing gradients

Safari has a bug that is visible when a model is stopped and
a script calls a repaint on the model view. When the atom
gradients are removed from the defs, there can be a very
long delay (> 6 sec).

This fixes that by not automatically deleting a gradient
just to replace it with one with the same id, but instead
by finding the existing gradient with that id and amending
its properties if necessary.

[#47255751]
Dropping-dye workaround is no longer needed.

[#47255751]
make diffusion on-click version public

change older version to draft