FiniteStrainPlasticBase can now apply strain increment in small substeps

Fixes #3774

It would be even better if FiniteStrainPlasticBase could
signal that it failed, even after applying all these small
substeps, and hence cut the timestep for the entire
mesh.  I'm not sure how to do that, and it wasn't the
point of this issue.
This second commit Fixes #3786.

Debugging tools used by developers have been refactored to make
them, hopefully, a bit more useful.  This is probably an ongoing
task, but this iteration is certainly better than the last!
Merge pull request #3776 from WilkAndy/subdivide_3774

FiniteStrainPlasticBase can now apply strain increment in small substeps