Add new function create_source_surface_for_widget based on gl_surface_source.c from the cairo test suite.