matrix.rotate crash with NaN arguments

matrix.rotate crashes if one of the last three parameters is NaN, e.g.

matrix():rotate(0, 0/0, 0, 0)

```


(The real code that fell over this tried to use a normalized vec3 for the last three parameters, but did not check it wasn't zero first, in which case normalizing will return a vec3 where every component is NaN.)

Thanks for the report @damny