3dmath: Use const-correct function declarations
ray.c: Precalculate per-pixel ray directions

This saves 16ms/frame on yelena.
3dmath.c: In normalize, calculate reciprocal only once, and use sqrtf

This saves about 12ms per frame on yelena.
3dmath.c: Throw restrict on all parameters to sphere_intersect

This saves 3ms / frame on yelena.
3dmath.c: Early out of sphere_intersect on t <= 0

The loop in ray.c discards any data from intersections with t <= 0 anyway, so
we might as well not calculate it.

This saves 15 ms/frame on yelena.