Animation cancellation

A little bit of a nicer fix for #337. Basically, it cancels another animation in progress. It's roughly working right now (less bugs than the current implementation) but it's still not on par with the queue solution (which is a hacky workaround). 

I'll see what comes of this.