Improve QuadraticStepSize

* Use previous step size in case interpolation is not done
* Use floats.EqualWithinRel rather than own comparison
* Use interpolation only if there is a chance of interpolating the
  function well by a quadratic
* Remove MinStepSize, it is not necessary that users manipulate it
Why 2*previous step size? The function change is really small, so we're going to take bigger steps? That seems weird to me.