Rework SmartAnimation to use its own sprite

Because calling setRegion() on one of the duck's sprites permanently
alters the sprite texture

revertSprite (field) is used so that after an animation gets stopped,
the duck knows what sprite to revert to

Bug: glitchy sprites