Updated animations

I changed how animations work
turns out that the transitionEnd event fires for every transition. So if
you listen for it and put "show" or "hide" functionality in the callback, it will
happen too soon when you have multiple transition. Instead I'm just going
to measure out the total transition time and do a setTimeout. It's
reliable enough