Add a StepSizer based on quadratic interpolation
Make QuadraticInterpolateStepSize more robust

* Improve computation of the step size estimate for the very first
  iteration based on |x_0|_\infty, |grad|_\infy, |f(x_0)|. The
  formulas are based on W. Hager's CG_DESCENT code.
* On subsequent iterations, estimate the initial step size as the
  minimum of a quadratic interpolant provided that the relative change
  in the objective function value is large enough for the interpolation
  to make sense. This avoids problems near the minimum.
Simplify estimation of the initial step size
Rename QuadraticInterpolateStepSize
Add minimum step size to QuadraticStepSize