Pure-TS linear scale. Maps a numeric domain [d0, d1] to a numeric
range [r0, r1] via standard linear interpolation. Domain may be
inverted (d0 > d1) for SVG Y-axes where the top of the chart is the
highest data value but the lowest pixel coordinate.
Values outside the domain extrapolate. Charts that need overflow
clamping clamp at the data layer, not the scale.