A Finite-State machine implementation, closes HaxeFlixel/flixel#1072

As discussed here: https://github.com/HaxeFlixel/flixel/issues/1072
An FSM is a relatively common pattern in games, so it might be useful to have an implementation out of the box.

    var fsm = new FlxFSM<FlxSprite>();
    fsm.owner = this;
    fsm.changeState(new HelloState());