Large commit - base class for TensorMechanics plasticity + extras

Utilities involving newton-raphson linear solve

refactored plasticity models to use the base class

The 0.5 is not required here.  It is convenient in the line search to have the 0.5.  The "Numerical Recipes" standard algorithm has 0.5, and although i could change it, of course, it would make the algorithm slightly alien to those readers who were familiar with the standard version.