Cairo revamp

I need access to `cairo_surface_type_t` from [lgi](https://github.com/pavouk/lgi) (Lua bindings based on gobject instrospection) but that type, although available from cairo, is not exported by the gir file. While there, I take the time to revamp the whole cairo gir file.