TimelineItem::cancel() and composable Timelines

Streamlines cancellation of TimelineItems.
MotionGroups are a facade around a Timeline, so you can simply compose Timelines.
Keep in mind that Timelines and unique_ptrs are move-only objects.