cairo: use a GLib.Timeout for calling destroy (unref) functions

Since some finalizer leaks started to get fixed ([1],[2]) hangs, freezes,
and X11 crashes were a bit more frequent. Queuing the refcount decrease
using a GLib.Timeout fixes them.

[1] https://github.com/mono/gtk-sharp/commit/41eeecbf9a6d84fa29ccee9adfee98ada1f1de66
[2] https://github.com/mono/gtk-sharp/commit/c28b3526fe34903bae0b39709c1c655beff7bdd8