Cleanup Matrix4:
- Formatting
- Tune the code to allow dart2js to generate better output
- Remove call chaining
- Remove duplicated code from operators
- Checking for matrix type instead of dimiension produce much better code.
- Split up scale into scale, scale3 and scale4, same for translate, translate3 and translate4
- Rename setTranslation to setTranslation3 and setTranslationRaw to setTranslation