Decoupling the setup for physics and OpenGL for multithreading purposes.
Implementing particle emitter which spawns and removes particles concurrently.
Added documentation and setter functions for spawn rate and speed modifiers.
Adding a destroy method to the model. Decreasing particle size. Still experiencing NPEs.
Reverting destroy function until we figure out what's causing the NPE.
Removing redundant call to remove a collision object from the world.
- Added synchronization for the physics world (so that models don't get
added/removed during a simulation step)
- TODO: Double buffering of models (so that we can have as many models
as we want)
Merge branch 'particle-emitter' of https://github.com/jtmzheng/3dss.git
into particle-emitter

Conflicts:
	src/world/World.java
- Added double buffering of the models (models first added to a
BlockingQueue, then drained to the main set)
Changing default particle emitter parameters.
Using ConcurrentHashMap for mapping ids to models.
Tweaking parameters and changing default particle size.
Adding documentation to constructor.
Removing debugging statements.
- Fixed bug where setupGL might not be called for colour picking
Merge branch 'particle-emitter' of https://github.com/jtmzheng/3dss.git into particle-emitter
ConcurrentHashMap -> HashMap
- Fixed bug where stopping particle emitter wouldn't wait for the
executor service to terminate (join)
Merge branch 'particle-emitter' of https://github.com/jtmzheng/3dss.git into particle-emitter
- Finally got around to fixing the bug with ParticleEmitter not cleaning
up properly. Added a new interface for any objects that need cleanup.