Only create work groups / grid surface if cs_prog_data->uses_num_work_groups
We seem to fill out a surface for the grid (for gl_NumWorkGroups) even if cs_prog_data->uses_num_work_groups isn't set. We could probably avoid this as a minor optimization.