fix(ngAnimate): defer DOM operations for changing classes to postDigest

When ngAnimate is used, it will defer changes to classes until postDigest.
Previously, AngularJS (when ngAnimate is not loaded) would always immediately
perform these DOM operations.

Now, even when the ngAnimate module is not used, if $rootScope is in the midst
of a digest, class manipulation is deferred. This helps reduce jank in
browsers such as IE11.

/CC @tbosch --- alternative/more general fix here

Closes #8234
Closes #9263
I think adding yet another decorator would actually make it a lot more brittle. There are already 2 decorators, both of which completely replace the previous instance --- it's just easier to have a quick hack to get at the original.

The properties don't matter normally, only during core tests, so their existence isn't really brittle and makes no difference.