Fix a few bugs related to the interaction between IPlayable, IPausable, and ITemporal within a SerialElement, specifically around ensuring that the transition from child to child happens in the various permutations of these traits. Introduce a helper class for managing this logic, as it can happen in both CompositePlayableTrait and CompositeTemporalTrait. This lays the groundwork for a MediaElement which only implements IPlayable (e.g. to ping a tracking server) working within a serial composition. Beef up unit tests so that these cases don't get broken in the future.