Implement Shanno-Phua initial step sizer
Add ConjugateGradient method
Change threshold for angle restart in CG

The previous value was too strict and did not restart when necessary.
This resulted in line search failure or non-descent direction. The new
value is still close to 1, but restarts more often. This increases the
success rate of CG on all but the most difficult test problems.
Use unit step size when restarting CG

It did not make sense to use a step sizing strategy based on the
previous step size when the new (gradient) descent direction is
unrelated to the old one. This change increases the success rate of CG
in finding a minimum.
Use FirstOrderStepSize as the default step sizer for CG

With QuadraticStepSize sometimes fails to generate a descent direction
and/or requires a looser convergence tolerance.