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.
Fixed bugs in derivatives.  Oh my goodness, how did these get coded?!

Fixes #3787

Some tests needed re-golding to fix minor discrepancies.
Merge pull request #3788 from WilkAndy/mc_deriv_3787

Fixed bug in derivative.  Fixes #3787
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