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
Can you switch the type and variable name order?  I think we want consistent documentation for our and doc software's sake