An accurate timer using requestAnimationFrame() and performance.now(), defaulting to setInterval when needed.