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
Just curious, is the <any> referring to the one in the domain?

If so, is there an actual way to harden the domain type, since the inputs can have many types?  Definitely a question to answer in a later pr, but I am just curious