Use generic typing for Scales.

Abstract.Scale -> Abstract.Scale<D,R>
QuantitativeScale<D> extends Scale<D, number>
OrdinalScale extends Scale<string, number>
ColorScale extends Scale<string, string>
InterpolatedColorScale extends Scale<number, string>

Changes: InterpolatedColorScale no longer inherits QuantitiveScale
Some vars on scales made public to fix mysterious ts issues
<any>s added into Plots so as to reduce the size of this PR.

QE: Recommend checking InterpolatedColorScales in particular
An `OrdinalScale` can have signature `Abstract.Scale<string, number>`. `QuantitiveScales` must support the `invert` operation, `OrdinalScales` (and `Abstract.Scales` in general) are not necessarily invertible.