Generalize everything that's left, remove all gtk / cairo specific functions (moved to toy-gtk-diagrams)