* Cache @state.current-time to optimize updates.

  Also, requestAnimationFrame is rather excessive, so throttle
  updates at 50ms intervals for now.