Add Shanno-Phua initial step size

* Implemented the other initial step size strategy described in Nocedal&Wright
* In some CG implementations the formula is attributed to Shanno&Phua, but for consistence with QuadraticStepSize the type's name FirstOrderStepSize rather refers to how the step size is estimated. ShannoPhuaStepSize is an alternative name anyway.
* This strategy seems to generate step size that work better with CG than those generated by QuadraticStepSize
* #16 should be reviewed and merged first