Refactor elapsed

This removes all the FlxG.elapsed invocations deep in the bowels of the code and instead passes the elapsed time down through update() cycles. By default the core engine passes in FlxG.elapsed.

Also, FlxSprite now has separately overrideable updateMotion() and updateAnimation() functions.

This closes this issue:
https://github.com/HaxeFlixel/flixel/issues/1188
I'm not entirely sure if adding a default value (say, -1) would be any faster than doing a Null<Float>... I would have to look at the generated cpp code to determine the performance implication of doing either or.

The safest bet to enforce type safety is to force the parameter to be passed in by the caller.