The module/nomodule tests are the most flaky ones, contributing significantly
to increase number of test failures (somewhat mitigated by auto-retries).
Fix flakiness of module/nomodule tests:
1. For module tests, increase the timeout to 5 seconds. In order for most tests
to not wait that long, change callbacks called by module scripts to verify
the results as soon as all scripts have run.
2. For nomodule tests, run the check in 1 second. All modern browsers will
need to wait that long, hence a smaller timeout, and if occasionally the
check runs too quickly, the test will still pass.
Closes gh-5699
PR #3869 added support for `<script type="module">` & some support for
the `nomodule` attribute but with no tests for `nomodule` and with the
attribute only respected on inline scripts. This commit adds support for
source-based scripts as well. It also adds tests for `nomodule`, including
making sure legacy browsers execute such scripts as they'd natively do - that's
the whole point of `nomodule` scripts, after all.
Fixes gh-4281
Closes gh-4282
Ref gh-3871
Ref gh-3869