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.
We can't check CLI overrides for subapps yet
refs #4117, #44119
Merge pull request #4136 from permcody/cli_fixup

We can't check CLI overrides for subapps yet
Don't pollute the local namespace
Enhance --enable option to dmake, now it takes arguments
closes #4134
Merge pull request #4137 from permcody/dmake_enhancments

Dmake enhancments
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
Removing unused macros

Probably results of copy and paste.

Refs #000.
Replacing macro with static const value

Making the name more descriptive. Removing multiple definitions of the
same macro.
Formatting according to the code standards

Refs #000
Using libMesh:invalid_uint for the case when the variable is not coupled.

Refs #000
9999999 is not the max for double

Refs #000