BUGFIX: Normalize() would try to normalize a zero vector which ended NaN.
We only normalize if vector is non-zero in magnitude.