Fix TimedItem._parentToGlobalTime() to use DEFAULT_GROUP.itemTime

Currently this method uses DEFAULT_GROUP.currentTime, but this is always zero
due to bug https://github.com/web-animations/web-animations-js/issues/66. This
bug probably won't get fixed, as the switch to TimeSources is imminent.

As a work-around, this change fixes TimedItem._parentToGlobalTime() to use
DEFAULT_GROUP.itemTime, which is equivalent.
Rename updateIterationDuration() to _updateInternalState()

This is a more appropriate name now that all duration calculations are done
lazily, Also remove a couple of stale comments.
Calculate TimedItem.endTime lazily

When the timing properties of a TimedItem in a hierarchy are modified, the
endTime must be updated before the parent is updated (in the case of a parallel
parent), but the endTime may also be affected by that update to the parent (in
the case of a sequence parent). To avoid this complexity, we calculate the
endTime lazily in the property getter.

This will also allow us to reduce the number of calls to updateTimeMarkers when
the timing properties of a TimedItem in a hierarchy are modified.
Avoid superfluous calls to updateTimeMarkers() when a TimedItem is modified

This patch eliminates superfluous calls to updateTimeMArkers() from both
_childrenStateModified() and _updateChildStartTimes().

This should improve performance, as well as simplifying debugging.