gl_common: split into gl_context and gl_utils

Because why not. gl_context.h has MPGLContext and all the OpenGL
definitions, while gl_utils.h has additional helper functions.

Includes quite a bit of include juggling: gl_common.h did way too many
recursive includes, which were removed with the split.