Port animation frames commands to use strokes
The system is not ideal, we have to use lambda commands coupled
with SkipFirstRedoWrapper. The problem is that our animation
framework returns "post-execution" commands. That is, it first modifies
the object and then returns the command for undoing this.
In the future we should refactor the animation system not to do this
post-execution thing, but just return commands for doing the work. Then
the code will be a bit simplified.
BUG:376596