Fixed bug in checkpointing code.

Our previous checkpointing code assumed that past (checkpointed)
simulations were run with the same timestep as the resumed run and
scheduled events based on this assumption. Thus, if the resumed
similation was run with a different timestep, events were scheduled
at the incorrect time (either too early or too late).

This commit corrects this issue for release events (such as release
patterns) by re-scheduling release events appropriately.

NOTE: The current code still improperly schedules unimolecular reaction
events upon resuming from a checkpoint with a changed timestep. This
will be fixed in a future commit.
Second part of bugfix in checkpointing code.

This fix ensures that unimolecular reaction events are properly
scheduled in simulations resumed from a checkpoint in cases were
the user changed the timestep.

IMPORTANT NODE: This fix required a change in the underlying
checkpoint file format since previously molecule time information
was stored in scaled units which does not allow one to properly
re-scale the times upon loading a checkpoint. In the revised format
time information is stored in absolute time units (seconds).

In the process, I've added an API tag to the checkpoint files
starting with version 1. Checkpoint files written with any
previously written MCell3 version default to API version 0
(the checkpoint file reader will detect this). I've also
enabled the ability to read and write checkpoint files across
different MCell3 versions (previously an MCell version identical
to the one which wrote the checkpoint file had to be used for reading).
Reading checkpoint files across MCell3 versions should be fine since
the API versioning will take care of any incompatibilities.