Use a default value of zero for TimedItem.startTime

Currently, the default value of TimedItem.startTime is the effectiveParentTime,
which is equal to the parent's iteration time when a parent is present and zero
otherwise.

This leads to unintuitive behaviour, as by default, the timing of TimedItems
within a tree depends upon the time at which each item was added to the tree.
As a result, it is often necesary to explicitly set the startTime to zero.

Furthermore, this behaviour is inconsistent with the upcoming transition to the
new model with Player objects, which encourages trees of TimedItems to be
built-up in advance and later put into effect by attaching them to a Player.

The Player model also makes TimedItem.startTime read only, so it will no longer
be possible to force a value of zero as described above.
Make TimedItem.startTime read only

In the new Player model, TimedItem.startTime is read only, but Player.startTime
is writable.
Remove concept of pausing

Removing this now will simplify the transition to the new Player model. A
simplified pause funcitonality will later be added to Player.
Implement Player

Thisa commit updates tests where parent behaviour has changed. Other mechanical
updates to tests to use Player are in a later commit.
Reinstate pause functionality