Add wast source information to JS-converted test cases
Currently the JS/HTML test conversion outputs a test name for each test, but each name is generic (such as "#2 Test that WebAssembly compilation succeeds", where the only thing unique is a prepended number. In the async version, the order of these tests doesn't even correspond simply to the order of tests in the wast file because each test generates multiple assertions as promises which do not all resolve together for the same tests. The result is hard to interpret and debug. This is related to #1860 although this particular issue isn't in the list there.
This PR adds a "source" argument to various functions and passes the information from the interpreter's AST through the various conversions into the JS files. The result is test names such as "#2 Test that WebAssembly compilation succeeds (address.wast:3)". There are still a few non-unique names. "Reinitialize the default imports" and the wrapper modules that are used when values can't be passed cleanly to JS aren't updated; but those modules are not directly part of the feature under test and are less likely to fail, so it didn't seem worth it.