context.h/mtypes.h split + cleanup
This series is based on !14433 (merged) and takes things a bit further.
It splits a bunch of things out from mtypes.h
gl_extensions gl_shader_compiler_options gl_precision gl_program_constants gl_constants get splits into main/consts_exts.h
gl_shader_info enum gl_compile_status gl_shader gl_linked_shader enum gl_link_status gl_shader_program_data gl_shader_program gl_program gl_active_atomic_buffer gl_transform_feedback_varying_info gl_transform_feedback_output gl_transform_feedback_buffer gl_transform_feedback_info gl_subroutine_function gl_program_resource gl_uniform_buffer_variable gl_uniform_block gl_bindless_sampler gl_bindless_image gl_shader_variable are all split out into main/shader_types.h
gl_config splits into main/glconfig.h
Then the GLSL compiler use of mtypes.h is taken down to places where it just needs to access inside ctx-> and a couple of other places are cleaned up to avoid these.
This should make changing gl_context a lot less onerous and avoid a lot of pointless recompiles of the GLSL compiler.
gl_config is also used in the gallium state tracker code so best to keep it clean on it's own.
marked WIP while the other resolves, but also for discussion.