Do not rely on PUBLIC being defined in glapi.h. Do not include core mesa headers.
Specifically, move all or most of glapi/glapi.c to mapi/u_current.c, glapi/glapi_execmem.c to mapi/u_execmem.c, glapi/glthread.[ch] to mapi/u_thread.[ch] and remove their dependencies on core Mesa headers.
Move glapi to src/mapi/{glapi,es1api,es2api}.