Use the new MeshBase::get_boundary_info() API in libmesh.

Refs libMesh/libmesh#388.
Reduce the number of times we call get_boundary_info().

Generally clean up some code.

Refs libMesh/libmesh#388.
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
Allow users to override compiler settings

This is helpful when one uses distcc. If you configure libmesh with
CXX='mpicxx' and then you want to use distcc, you have to go back and
reconfigure libmesh. This allows people to supply the libmesh_CXX, libmesh_CC,
libmesh_F77 and libmesh_F90 variables, thus using distcc without libmesh
reconfigure.

Closes #4171
Merge pull request #4122 from jwpeterson/boundary_info

Use the new get_boundary_info() API in libmesh
Merge pull request #4172 from andrsd/distcc

Allow users to override compiler settings
Merge commit '0cd3be8926198bc5f629d5aac5e519bc23cb233b'