Immutable 2D Double vector. Arithmetic follows Double semantics.
Linear interpolation; amounts outside 0..1 extrapolate.
Unit direction; zero stays zero. Scaling avoids finite magnitude overflow and underflow.