Ensure now() is always updated in TestScheduler.advanceTo/By

The TestScheduler advanceTimeTo() and advanceTimeBy() methods only update now() correctly if there is a scheduled event in the work queue after the target time. If the queue is empty, now() is not updated at all. If it has no items after the target time, then now() is updated to the time of the last event on the queue.

The pull request ensures now() is always updated to the target time. There is no check to make sure time always moves forwards, but then that check is not in the current implementation either.