MATH: Allow Rotations to have a selectable Euler Order

This is the first step to improving the Quaternion implementation to fix attach/detach. In this patch, I add a selectable Euler Order parameter for Rotation3D. I also replace some of the existing Quaternion usage where it was immediately converted into a Matrix, removing the middle step of building a Quaternion first. I also have a branch where I adapted the old Rotation code to test my implementation against that. This isn't really mergable, but can be found here: https://github.com/JoseJX/residualvm/tree/Rotation3D_OldTest

This should be standalone, but if you'd rather that I include the Quaternion code at the same time, that's okay too. I still need to add a check for gimbal lock and resolve that in the Matrix -> Euler implementation, but I'd like some feed back on this first.