refactor(modal): use $animate for animation (WIP)

- Use decorator to customize animations
- Need to sort of wrap $animate because $animate doesn't support animations that call other animations (.leave can't call .removeClass and expect the removeClass animation to execute)

Work in progress and proof of concept. The demo change is included just for convenience.