refactor(modal): use ngAnimate for animation

Supercedes #1772 

This makes use of the new `$animate:close` event to determine that the animation is done instead of using `$transition`. There are minimal changes to the current code and there's one fix and the removal of some timers.
Should be a `one` method.