dynamic particles: catch lifetime value below zero to prevent crashes

A lifetime value of < 0 will now be 0 instead, which is probably the most noticable value for scripters (because the particles won't disappear). This does not throw a script error, because eventually the particle creation might be moved to another thread, too.
objects now also instantiate their dynamic particle structures when loading from a savegame (fixes crash)
moved ObjectRestorer from Storm/Tutorials into Helpers.ocd

It was used by more than one scenario already and the two versions already diverged. We should not do that in our own repository.
adapted remaining usages of old particle system in Missions.ocf to the new one