flushMicrotasks and flushTimers

What I was trying to get across is that flushing only non-periodic timers leaks the implementation details of the code under test.  The code under test may even has some dependency that I'm unaware of which schedules periodic timers which will later do something that *would* cause the test to fail if they were run.  There is often the option to implement things with either periodic timers which get conditionally canceled, or with non-periodic timers which conditionally schedule new Timers.  I should be able to swap out these implementations without it affecting my tests.