Look for invalid UTF8 in tags on startup

I didn't put this into a db update step since it could be introduced via
XMPs at any time.
Draw callbacks: cairo drawing cleanup. Part 1.

Only simplest stuff for now - drop unneeded temporary surfaces.
Might result in slightly smaller memory footprint.
Use gdk_cairo_set_source_rgba() helper

Relevant Coccinelle patch:
@@
expression cr, color;
@@
-cairo_set_source_rgba(cr, color.red, color.green, color.blue, color.alpha);
+gdk_cairo_set_source_rgba(cr, &color);

@@
expression cr, color;
@@
-cairo_set_source_rgba(cr, color->red, color->green, color->blue, color->alpha);
+gdk_cairo_set_source_rgba(cr, color);