We put this in gtk+ for now since it will be synced initially, but it avoids using glib so that it can be used lower in the stack if required (e.g. in cairo later).