Multiple changes in math

- Added new matrix type traits.
- Refactored the matrix multiplications.
- Added new matrix constructors:
  - translation_x, translation_y, translation_z,
  - shear.