Start work on ElementDataContainer 131f30e5bc68

This is a way for elements to store data that is specific to a particular Simulation object, such as portal contents or wifi channels, without modifying the Simulation class or using a global variable.
keep elementCount correct when deleting particles and opening saves. Add sim.elementCount (mostly for testing)