Scoped matrices and remade GL1 to use them

-Now all matrices are in enigma:: namespace, so that it doesn't clutter
the global one (or the user one).
-Added a "transformation_update" bool which tells when to update
matrices. This gives about 50FPS in Mario example. This is needed
because the update happens before the drawing and the drawing usually
happens a lot between transformation functions.
-GL1 is also using the custom matrices now. But the speedup here is a
lot less inconsistent. With the glFunctions Mario goes up to 1100FPS,
while with these changes it goes to 970FPS. So I am not sure if these
changes should be kept. In example like Minecraft, there is a speed
boost though. Additional tests should be conducted.

Maybe the math functions can be faster? We could implement them using
SSE and that shouldn't break compatiblity as everyone since Pentium3 has
them. But doesn't the compiler already does that? Should probably check.
Boosted matrix functions

-Added specific matrix functions, so things like rotateX/Y/Z which makes
a specific matrix taking into account that other axis are zero.
-Translate and Scale are now using expanded form taking into account
that they are very specific. This greatly reduces the multiplication
overhead.

These two optimizations boosted Mario example in GL3 from 800 to 990FPS
(a 190FPS increase!). I will do the same for GL1 now.