Tidy TensorMechanicsPlastic userobjects:

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
TensorMechanicsPlasticWeakPlaneShear is now a baseclass for this
plasticity, with cohesion = tan(phi) = tan(psi) = 1.

Derived from this is Cubic, Exponential and Gaussian, which are
different hardening models.

Tests updated to reflect this.  One test added that tests the newly-added
Cubic hardening

Doco is at http://mooseframework.org/wiki/PhysicsModules/TensorMechanics/WeakPlaneShear/

Fixes #4139
TensorMechanicsPlasticTensile now has tensile_strength = 1, and therefore
acts more-or-less as a baseclass.

TensileCubic and TensileExponential derive from this, with different forms
of hardening laws

Tests modified appropriately.  small_deform_hard3 test added to demonstrate
correctness of the newly-added Cubic hardening law.

Fixes #4139
'Cap' smoothing added to TensorMechanicsPlasticTensile, along with a test of this

Fixes #4139
'Cap' smoothing added to MohrCoulomb

Two tests illustrating the correctness.

Fixes #4139
Heavy test of capped MC added.  Fixes #4139
Merge pull request #4149 from WilkAndy/tidy_4139

Tidy 4139
Fix early return issue
closes #4162