GL3 fixes

-Directional lights now work a lot more correctly (fixes issues
FroggestSpirit was having). Didn't know directional lights needed
normalMatrix instead of modelView matrix.
-Fixes triangleStrip batching in GL3ModelStruct when using indexes. They
were not winding the triangles correctly, so culling failed.
-glsl_program_link() now correctly gets all attributes and uniforms. So
shaders made at runtime work again.
GL3 light fix

-Changed so that light position is updated even if the light is disabled
(required, because in ProjectMario it's done), so dynamic lights work
again. This should fix it and allow more optimization in the future.

Tested on ProjectMario, 3D lights demo and Project Collidascope.
Better GL3 error reporting

-Program class now has "name" member. It can be set manually (in case
you load shaders at runtime) or it's set automatically to the name of
the shader when loaded trough LGM. This means the errors now not only
show ID of the program, but also the name.

Program[0] - Error while linking
Is now:
Program[shr_my_shader = 0] - Error while linking

-Line number shows correctly now. It ignores the prefix part, so if the
error is "error 0:50", then now it is the 50th line in the user shader
and not in the total shader size (which would be prefix + the custom
shader).