Maintain instance time lists in sorted order

The SMIL timing model requires us to identify the earliest end time not
before the current interval's begin time.

Keeping the instance time list in a heap isn't sufficient - we need a
vector or tree. For now, we will use a vector. The expectation is that
most elements' pending begin and end instance time lists will be small.