Change clock to getClock(initialTime)

initialTime is only relevant to the Clock, which is not always needed,
so it should not be a constructor parameter.  This allows initialTime to
be a required argument, and thus not be named, and not having to default
it to `new DateTime.now()` which introduces indeterminism to tests.