* Partial sparks boilerplate reduction
- Lots of obects are making `/datum/effect_system/spark_spread`, setting
them up, firing them, and then not qdeling them afterwards.
- Makes a `do_sparks` global proc that takes the same arguments as `set_up`
and then calls `start` and then `qdel`
- Switches a bunch of things to use this proc
- Makes emitters keep their own spark_spread datum around, since they
spark so damn much.
- Also makes some things use timers and ports some things to Initialize.
* Compilation
obj/effect/effect is now renamed obj/effect/particle_effect for better usability.
datum/effect/system and /datum/effect/effect/system are now both /datum/effect_system.
Fixes a bug where wall mounted igniters (and other spark producing objects) didn't produce sparks sometimes.
Moved explosion_particles.dm into the effect_system folder, because it has effect_systems code.
obj/effect/effect all pool themselves.
PoolOrNew() can now be passed a type and a list instead of a type and a location. In that case, the list will be passed to New() via arglist().
RCD's now delete their spark system and properly garbage collect.