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?
If http://caniuse.com/#feat=pagevisibility is correct, the branch that sets `document.hidden = true` should take care of the unit test, since Android 2.x doesn't support Page Visibility API.