Added proper GL3.3 debug context

-The context created is now GL3.3.
-In debug mode, GL3 debug context is created, together with a callback
function. This crashes on my AMD laptop for now though.
Replaced deprecated glGetString(GL_EXTENSIONS)

-Removed glGetString(GL_EXTENSIONS).
-Added a gl_extension_supported() function. This is how it's done in
>GL3 and could potentially have a speed increase (not in this case
though), as we can cache most needed results, as well as even run things
in parallel. But as we should call it once (when the game starts) all of
these thoughts are useless.
Removed never used draw_get_graphics_error

-draw_get_graphics_error() was not even defined in a header, so it was
actually impossible to be used. With implementation of GL3 debug
context, this function is also quite useless.
-Added default name to default shader.
Fixed some GL errors

-Added compatibility profile until GLEW is updated, because it uses
glGetString(GL_EXTENSIONS).
-Even with compatibility profile we had problems with wrong enums and
wrong function calls. Fixed them. Now no errors while running Project
Mario.
-Fixed uniform matrix functions, which were asking the wrong size to
get_uniform() macro. Didn't break anything, but just f threw false
errors.
Removed more deprecated functions (glAlphaFunc)

-Removed glAlphaFunc() and glEnable(GL_TEXTURE_2D).
-Implemented alpha testing in shader.
Fixes wrong argument to glTexture2D and cleanup

-The internal format parameter for glTexture2D was just 4... nothing
more or less - just the number "4". Dunno who did it or why, but GL spec
requires an enum there. There a lot to choose from (most obvious of
which is GL_RGBA in our case), but none of them actually have the value
4. So the reason the function worked is because when given wrong or
incompatible format, it just chooses one it likes better. It's more of a
"hint".
-Removed deprecated glLight* call.
-Set default ambient to 0,0,0 (c_black) as it's the default one in GM.
Previously we had the default one in GL1 FFP, which is 0.2,0.2,0.2.
Adds new functions to culling

-d3d_set_culling() now just enables or disables culling. This was
required so that it actually makes sense and we don't set invalid
function to glFrontFace. This is also more compatible with GM.
-Now to choose winding of vertices (so what is clockwise and what is
anti-clockwise) can be done via d3d_set_front_face().
-Also added d3d_set_culling_mode() which takes GL_FRONT, GL_BACK and
GL_FRONT_AND_BACK to figure out what side to cull.