This interface provides three methods which
are called by TimingController during the course of a timing
sequence. Applications
that wish to receive timing events will either create a subclass
of TimingController and override or they can create or use
an implementation of TimingTarget and pass that into the constructor
of TimingController.