breakout animation as a service so we can polyfill for requestAnimationframe on cordova and others