TINYGL: Maths Code Refactoring

This pull request represents the completion of the first deliverable of my Google Summer of Code project.
The PR contains the c++ style math refactored code.
This code mantains the same level of performance of the original version (even though sometimes it also run  faster).
If you have any questions or doubts please ask.
inverse -> result. invert -> Matrix_Inv that's 2-3 function calls here.
But I suppose if I move the logic inside the other method then that changes.
I'm not entirely sure if this matters though, if you think that having it inside the member function is more organised then I can just move it there