Don't load `_gl_handle` into static memory when using `--mx`
Currently, `loader/gl.c` generates code like this when using it with `--mx` mode:

```c
static void* _gl_handle = NULL;

static void* glad_gl_dlopen_handle(void) {
    ....
    if (_gl_handle == NULL) {
        _gl_handle = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0]));
    }

    return _gl_handle;
}

int gladLoaderLoadGLContext(GladGLContext *context) {
    ...

    did_load = _gl_handle == NULL;
    handle = glad_gl_dlopen_handle();
    if (handle) {
        userptr = glad_gl_build_userptr(handle);

        version = gladLoadGLContextUserPtr(context,glad_gl_get_proc, &userptr);

        if (did_load) {
            gladLoaderUnloadGL();
        }
    }

    return version;
}
```

This is very racy (what if one thread calls `gladLoaderUnloadGL()` while another thread calls `gladLoaderLoadGLContext`?) and as far as I can tell, the `_gl_handle` variable serves no purpose here, because the only scope this handle is fully contained inside `gladLoaderLoadGLContext`, where it gets freed again afterwards.

As far as I can tell, the only purpose of this static variable is to be used in the case of `--on-demand`, in which case the handle needs to be persistent so functions can be loaded ad-hoc. So we should make its existence/use conditional on this flag.

I would go ahead and make this change, but I'm a bit confused as to why `gladLoaderUnloadGL` even exists in the case where `on-demand` is not used, because as far as I can tell, the non-ondemand loader is always designed to free the handle again after loading functions?