Integrate checkpointing
Use parallel hdf5 to handle checkpointing data
- support parallelism (number of MPI domains cannot change on resume)
- script cannot be changed on resume (this is a choice, not likely to change)
Also perform a few minor changes/fixes on the way