WIP: Started checkpoint file reporter

Currently, its also saving the serialized system/integrator,, but I'm not sure if I like that. From the perspective of the python app, those actually AREN'T enough to reinitialize the whole simulation, because it doesn't give enough data to attach the reporters -- you still need the topology, and stuff like the report intervals. So it doesn't really make sense to claim that the checkpoint file provides the complete "machine image" of the simulation.

Also, I'm not sure I like the idea of saving the checkpoint file, v.s. the serialized state with positions and velocities only (assuming that we can solve the 1/2 timestep issue for leapfrog integrators). The positions/velocities might be more useful, even if it does lead to the random number generators being reset.