Normal of zero vectors

The normal of a vector is the vector divided by the vector's magnitude.
However, if the vector is the 0 vector, you get 0/0, which results in
non-finite numbers.

There might be legitimate situations where you (unintentionally) try to
normalize a 0 vector. For example, you might be using the derivative of
a field to compute the normal to a contour of the field. If the field is
in a static region or critical point, then the gradient goes to 0.

In these cases, we want the `Normal` and `Normalize` functions to return
something reasonable. These functions now return the 0 vector back. This
is no more "correct" than producing NaN values, but it is less likely to
cause problems later.
33 jobs for !2131 with normalize-zero in 160 minutes and 43 seconds (queued for 9 seconds)
latest merge request