Effects: Reintroduce use of requestAnimationFrame

Pretty easy, takes advantage of Page Visibility API (PVAPI), provides incompatible change – animations in background tabs get paused, but obviously, in older browsers it would work as it works right now

In environment where PVAPI has not exist but `raf` has it could create issues described in <a href="http://bugs.jquery.com/ticket/9381">#9381</a> but such environments live only in the past.

It worth to note that Opera 12.16 has not `requestAnimationFrame` but has PVAPI – in there, last animation will finish all it's frames but new animations would not be accepted, iOS < 7 has `requestAnimationFrame` and hasn't PVAPI (we could workaround that with `pagehide/pageshow` events but i don't think it's worth it), but in there `requestAnimationFrame` is prefixed, in iOS 7 `raf` is unprefixed but it also has PVAPI. Android 4.4 version has both API's and none in previous ones.

Why do i get a feeling that i'm miss something?
So looking at the test itself, this `Object.defineProperty` is just intended to ensure that `document.hidden` always returns `true` for the test, correct? There's no feature support related to the actual code. If that's the case I'm fine with no comment.