Use requestAnimationFrame for better animations.

 - Utilize requestAnimationFrame for autoPlay (rather than setInterval)
 - Utilize requestAnimationFrame on callback (rather than setTimeout)
 - Include a fallback for requestAnimationFrame