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
it will be a parameterized type based on the axis

```
class Axis<D> extends Component {
scale: Abstract.Scale<D, number>
}
```