Please don't merge - i'm using test harness to check for errors

TensorMechanicsPlasticWeakPlaneTensileN now has cubic hardening (better convergence than
exponential), and stores stuff in constructor for optimizations.  One test added.

Also, changed the "limit" parameter to default to 1.0 in the Cubic hardening userobjects.
This was because i divide by "limit" in various cases, and a 0.0 value (the previous default)
just does not make sense.

Fixes #4139