added option to save solution DOF after the time step

When we run interactively using a compute thread, the monitoring thread needs to grab an array that has a valid solution in it, otherwise you can get unconverged solution DOF. This adds the option --save_dof  that causes a copy of the dof to be stored when they are valid solutions.