Interpolators for interpolating in one and two dimensions.

Curve interpolators are used during curve calibration. The built in set of interpolators are defined as an extended enum in CurveInterpolators. This allows them to be referenced statically like a constant but also allows them to be redefined and new instances added.