Modify computation of the gradient norm

Remove division by sqrt(dim) in the computation of Stats.GradientNorm
because:
* The name of the field is misleading otherwise
* Stats.GradientNorm is reported by Printer which then also becomes
  misleading
* The division is unnecessary; dimension of the problem is readily
  available if someone needs the divided value
* Using such modified gradient norm seems non-standard in gradient
  convergence checks
Add the max-norm of the gradient to Stats
Use the maximum norm in the gradient convergence test

... and report it in Printer.
Remove computation of the 2-norm of the gradient
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
Initial version of the conjugate gradient method