Y Scale domain adjustment algorithm

Add API endpoint to provide custom y scale domain adjustment algorithm based on new x scale domain.

Close #1079.
But what if we have sth like this
```new Plottable.Plot.AbstractXYPlot(xScale, yScale).addDatase({sth which has no x or y attribute}).autoAdjustmentYScaleOverVisiblePoints(true).project("x", "a", scale);```