[Scenario] Track order added to timeline layout

Track the order in which components are added
to the timeline layout, and favor moving
recently-added components down to make space
for earlier-added components. This behaves generally
more consistently with user expectations for the
timeline.
[Scenario] Enforce all constraints on save

When some ActivityView is saved, enforce all
constraints in the parent timeline view. This
ensures that editing start/end times from
Timeline Inspector does not permit the user
to violate parent/child boundary relationships.
[Scenario] Allocate a block to every top-level activity

Previously, top-level activities were allocated to the
same block (line-separated group of rows) whenever
possible, and moved to a new block when there would
be overlap. This can be inconsistent if the user
subsequently moves top-level activities such that
they overlap temporally within the same block.

Instead, allocate each top-level activity one whole
block. This is as specified in nasa/MCT-Plugins#59
[Scenario] Remove obsolete method
[Scenario] Animate height changes in TimelineLayout
[Scenario] Maintain pan on update

Don't update centerTime (which corresponds to
pan) on updateMasterDuration in timeline local
controls. This update is not necessary when
zoomed out (existing clamping of center time
handles expansion of maximum/minimum times)
and causes current pan to be lost if zoomed
in.

Since updateMasterDuration is triggered after
activities are moved, this change avoids causing
activities to jump around visually after drag
gestures complete.