FlxEmitter refactor (do not merge), closes #587

This is a pull request for a refactoring of `FlxEmitter`, which has several goals:

* Merge `FlxEmitter` and `FlxEmitterExt`
* Remove redundant variables (`lifespan` and `life`, `x` and `y` and `xPosition` and `yPosition`
* Create a consistent logic for setting start, end, min, and max values (see `Range`, `Bounds`, `RangeBounds` and `FlxPointRangeBounds`)
* Rename variables to be consistent with `FlxSprite` (`angularVelocity` instead of `rotation`)
* Allow greater control over start, end, min, and max values

This is very much a WIP, but I wanted to get some feedback on the changes early. Usage:

````
_emitter = new FlxEmitter(10, 10, 200); // unchanged
_emitter.velocity.setAll(100, -50, null, null, 200, 50); // finer control over velocity
_emitter.elasticity.setAll(0.8); // elasticity vs. bounce
````

Basically everything will be `Bounds`, `RangeBounds`, `Range`, or `FlxPointRangeBounds`, allowing devs to set variables with a logical method (e.g. `velocity.start.min.x = 5;`) or all at once via `setAll()`.

Comments appreciated! Thanks!
It's just an optional parameter. If ignored, the resultant alpha is within
the alpha channel of `Min` (or 0, if not provided) and the alpha channel of
`Max` (or 255, if not provided). The other option is for the default value
of `Alpha` to be 255, but then we would be assuming intent (the dev wants
resultant alpha to be 255 if that parameter is skipped) and would need
another parameter (like `UseMinOrMaxAlpha:Bool = false`) to get the same
functionality that a nullable alpha allows.
On Jun 13, 2014 7:46 AM, "Gama11" <notifications@github.com> wrote:

> In flixel/math/FlxRandom.hx:
>
> >  	 */
> > -	public static function color(Min:Int = 0, Max:Int = 255, Alpha:Int = 255, GreyScale:Bool = false):FlxColor
> > +	public static function color(?Min:FlxColor, ?Max:FlxColor, ?Alpha:Null<Int>, GreyScale:Bool = false):FlxColor
>
> So, for skipping params? I'm not sure this is a good idea. It's a hack to
> get around the limitation of not being able to skip non-nullable params on
> flash.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/HaxeFlixel/flixel/pull/1174/files#r13748568>.
>