Destroy things we create
Checkpointing work on SNES solver

Derived from the DMSolver. This is basically copying libMesh, but
I expect to move this back into libMesh. This is just allowing me
to play in GRINS only for now.