Save animation timeout IDs, clear them on reset

Should close #22.

I realized that this exception was occurring in the case where `reset` had been called (i.e. on tab visibility), but when there is still an animation thread waiting to execute.

This should keep tabs on those, and make sure they don't run if unnecessary.