Particle Restart Files

After running into some annoying corner lattice/reflecting surface tracking errors, I decided to implement particle restart capability. If a fatal error occurs in either physics.f90 or geometry.f90 a particle restart file is created. After it is written, you may restart the code from this file on 1 processor, increase verbosity/add debug statements to understand the neutron's path and interaction history. 

To restart just do:
/path/to/openmc/src/openmc --particle particle_<#>.h5

Two files have been created for this purpose, particle_restart.F90 and particle_restart_write.F90. Due to circular dependencies, it was easiest to create two files.  Currently, it is not written for tally (track length on mesh) errors, but can be expanded in the future.  Also, it can only be used when compiling in HDF5. It should also be implemented for fortran binary in the future.