omnigutter: port to GtkSourceGutterRenderer
In GtkSourceView 5, gutter renderers are widgets. That allows for much more flexibility in how we draw. We need to port the GbpOmniGutterRenderer to be a widget and use GtkSnapshot more efficiently.
This code is pretty important because it gets executed a lot during scrolling.