Concurrent animation engine

The engine starts to animate moving objects as soon as it is informed about them instead of sequentially. As soon as one object is said to be animated to a new position, it will take one step duration to go from the position it is currently to the end, even if that occurs at the middle of another object moving.

That also means the winning animation must be triggered only after the winning movement terminates (with callback).