Work on linked lists for pmap

Millions of things are currently broken, and TODO's are being scattered
everywhere, but it's a start.

At some point, I plan to test the effect on speed of splitting each linked list
into one containing normal (not energy) particles, and one containing
all (energy and not energy) particles.
More pmap linked lists, movement code should now work
Remove some pmap_resets, since they are slow

Using Lua step/mouse/key/graphics/update functions that modify particle
positions or types will probably cause crashes, until the Lua stuff gets
fixed so that it keeps pmap up to date.
pmap linked lists done for element update functions up to SING
pmap linked lists done for element update functions up to TTAN
Add element functions Func_Create_Allowed and Func_ChangeType. Remove ISSPAWN, use ElementDataContainer for FIGH and portals, add Simulation::part_kill and part_change_type functions, fix pmap errors when STKM falls off the edge of the screen.

Compiling with DEBUG_PARTSALLOC may help with finding particles that are
killed twice.
Replace create_part(...,PT_SPRK) calls with new functions for sparking stuff
Finish pmap linked lists for element update functions