Factored out the time keeping parts of Timer, Wait, Repeat, and
SimpleChronogram into IClock, Clock, and IClocked. Also, factored the
NMPL generation parts of ElementFactory into ElementIdGenerator. And
then fixed all of the tests.