Add playState and tests

pending, not idle -- the currentTime and startTime will be null. When the animation is running on another thread, we can't synchronously know the time at which it will become paused.