Multi types io
I have modified a bit the way you were reading in particles from the HDF5 files. I have tried to make it as generic as possible to allow for easy extension to more particle types and to MPI in the future.
Note that now if SPH particles get read in the corresponding gparts are created as well. At the end of the routine, the gpart array will contain all the DM particles followed by all the gpart counterparts of the SPH particles. The links are also set correctly to make sure we are in a safe state before moving forward.
If you agree with the style and don't think I have missed something here, I'll extend this to the MPI versions of the i/o and move to the writing routines.