Large commit - base class for TensorMechanics plasticity + extras

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

"dirn" stands for plastic strain increment residual equation though it contains both the flow direction and increment size.