FiniteStrainMultiPlasticity optimized in the following way:

purely elastic calculations now don't use much of the plastic machinery

the "dumb" deactivation scheme does not attempt to activate constraints
that are initially < 0

timestepping is much cleverer - the stepsize can now increase after >= 2
successful returns, and the best admissible state is repeatedly saved
during substepping so the algorithm doesn't have to go back to the beginning
when stepsizes are cut.  Replaced max_numsubsteps by min_stepsize, which
meants lots of .i files had to be changed

Added ignore_failures flag, which might be useful in PJFNK calculations where
the residual doens't have to be perfectly calculated

Some refactoring and cleaning of logic was done.

Fixes #4060
Merge pull request #4063 from WilkAndy/opt_multi_4060

FiniteStrainMultiPlasticity optimized in the following way: