refactor(carousel): use ngAnimate

This also fixes issues with ngAnimate.

Closes #1350

Need to verify if this fixes #1513 , but it should fix it too.
Should fix #1185 as well.

The reason the chore(demo) commit is here is because ngAnimate currently breaks the carousel, as such, it should only be added to the demo once this PR is merged.

The `carouselAnimator` is used to animate the classes. The class names are configurable by calling `$decorator` on the carouselAnimator.

Once this PR is merged, we can start merging the other PRs related to animations. This should probably be the first PR in line right after enabling the ngAnimate so that nothing (else) breaks on the demo.