Fix infinite loop in event detection

Previously, when a RESET_* event caused two other event detectors to
trigger simultaneously and discontinuously at the same time then an
infinite loop would occur in acceptStep as it tries to backup up and
process the one event before the other, but the even time remains the
same. This affects all propagators.

Now tryAdvance allows the other event to occur first if the events are

Also fixes some cases where tryAdvance returns false (indicating the
other event should occur) but does not update t0. This erroneously
searched for events before the first occuring event if it was as
RESET_*. I.e. events could have occured out of chronological order.

Also fixed a bug in CloseEventsTest that caused two events to be
simultaneous when they should have been different by 1 ulp.

Fix #684
1 job for 684-infinit-loop in 21 minutes and 24 seconds (queued for 1 second)