fix($animate): only cancel class-based animations if the follow-up class contains CSS transition/keyframe animation code

Closes #4463
Closes #3784
fix($animate): ensure animations work properly when the $rootElement is being animated

Closes #4397
Closes #4231
fix(ngView): ensure the new view element is placed after the old view element

Closes #4362