ENH: Improve `test_*_anim` functions.

The `test_*_anim` functions never showed the animations as they did not go
through the UI event loop.  We now use the `animate` decorator to do
this.  The code is refactored a bit to reuse the non anim functions and
then use the anim version to show how the animation is done.  This
nicely shows the animate decorator as well.

Also fix the animate decorator to preserve docstrings and other metadata
by using `decorator` if available or `functools.wraps` otherwise.