Lots of emitter fixes

* ```myRangeBounds.set(100, 200);``` would result in ```{start: {min: 100, max: 200}, end: {min: 100, max: 100}}``` Subsequently, the start and end values are not the same, and so the end values get used, meaning the final value of every particle is the minimum possible for any property. This change adds an extra condition to fix that.
* Removed redundant `Null<>`s
* Particles now emit from their centers, like the old emitter.
* `autoUpdateHitbox` didn't always update correctly as it only changed when start and end scale were different (whereas the hitbox needed to update whenever the scale was set)
* Seeing as particle behavior is initialized in `FlxEmitter`, most of the stuff in `FlxParticle#reset` was unneeded and wasteful.
* `scaleRange.active` was erroneously always true. `scaleRange` now uses `equals` instead of `=` to compare points.
By the way, I moved this stuff because then the generated stuff can make use of them, for example, changing the scale uses `autoUpdateHitbox`.