gl: Create a core gl function map

Instead of using eglGetProcAddress and glXGetProcAddress, create a
map for those core gl functions

This is because on some implementation, neither eglGetProcAddress() nor
dlsym() will return GL function pointers for core GL functions