* Created custom pipelines and shaders for untextured and textured
particle rendering.
* Created custom render payload for particles
* Moved all particle updates into simulation rather then render.
* Uses pendingChanges.updateItem lambda to update the playload with
new data for rendering.
* ParticleEffectEntityItem now updates its dimensions properly,
based on emitter properties.
* Bug fix for dt not accumulating properly, during gaps between updates.
now we just update all the time. (super cheap tho, if there are no particles
animating)
* Updated variable naming to match coding standards.
* Changed particle raw float arrays to vectors.
* Bug fix: changing maxParticles will no longer lead to memory corruption.
* Made particle ring buffer more explicit, added _particleTailIndex.
* Added getLivingParticleCount() private method.
* Moved integration and bounds code into private methods.
* Bug fix: high emit rates now properly integrate particles forward for the
remaing frame time, not the entire frame.
* Bug fix: new particles were not initiaized to origin.
* Added more particles to ajt-test.js.
* Bug fix: ajt-test.js script was not shutting down properly.
* Removed random seed, unless we have a psudo random number generator per
particle system instance, it's unlikely that this will preserve sync.
* Bumped packet version number.
* Changed particle geometry to billboarded quads
* Added texture support
* Added ajt-test.js particle test script.
* GeometryCache support for batched quads with texCoords.
* Bug fix for infinite loop if _lifetime was very large.
* Don't reset the simulation on animation loop.
* stop emitting particles on animation stop, but keep simulating until there are no more living particles.
* Removed some trailing whitespace
Tried to address all of Brad's notes, most of which were related to
matching the coding style for the project. Also used GeometryCache
instead of making direct calls to OpenGL to do drawing, took a different
approach to seeding rand(), updated the packet version, and fixed a bug
that I noticed in the setting of the dimensions for the particle effect
entity.