New particles JS features

* adds Particles.findParticles() which returns array of particles to JS
* adds Particles.getParticleProperties() which returns the current properties of a particle
* adds Particle.identifyParticle() which will convert a created particle token into a known ID
* also prevents edit packets with bad IDs from creating new particles

closes #1688
closes #1689
closes #1693
closes #1692