rewrote plot to use ScatterPlot

Created a simple wrapper class ScatterPlot.  This is now used
by plot() to make scatter plots.

Also fixed bug where the default xrange and yrange were calculated but
not getting set for log plots.

exported ScatterPlot, but should debate if this is useful generally