Refactored particle and emitter class. Values that can vary from particle
to particle now wrapped in approperiate classes