Stop requiring a renderer to be present to get a transformation
This rearranges the renderer a bit to make it more of a bunch of functions, so that it doesn't need to reallocated all the time (not reached yet).
The main feature is that geometry is now permanently married to the widget rather the renderer. While geometry is not always defined, C doesn't support sum types, so checks won't be enforced by the compiler. It's OK to pretend there's always some geometry to avoid crashes.
Should fix: #270 (closed) but I'm not sure how to reproduce that.