Leaving the `false` default value without the suppression triggers
`RedundantArgumentDefaultValue`, while removing it triggers
`BaseMethodCallWithDefaultParameter`.
Disable the former, because a single redundant parameter is less bad
than silent breakage if the default value of `propagateChildren` in the
base method ever changes.
Because submission can be prevented by both not having been issued a
correct submission token, and by not actually registering any hits in
gameplay, ensure that tests that don't receive a token register at least
one hit, to avoid potentially having test cases that test the "no token"
flow pass erroneously because they never had any hits in the first
place.
Due to the lack of locking, there was a chance the the update thread
`context` was retrieved just before the `flushContexts` call, followed
by `.Refresh()` being run while the blocking behaviour was invoked.
This can be seen in test failures such as
https://ci.appveyor.com/project/peppy/osu/builds/39859786/tests.
As an aside, I tried multiple different methods to avoid `lock()` on the
update thread but they felt flaky. The overhead of lock when there's no
contention is reportedly around 30-50ns, so likely not of concern. We
can address it at a later point if it becomes one.