[null-safety] add integration tests for sound null safety modes, add support for sound null safety in dart2js (#67171)

Add integration tests to verify that ddc and dart2js can be built and run in sound mode. Updates dart2js compilation to insert a language version comment into the generated entrypoint if necessary.

dart-lang/sdk#42253
diff --git a/dev/bots/test.dart b/dev/bots/test.dart
index e785f40..3de74c6 100644
--- a/dev/bots/test.dart
+++ b/dev/bots/test.dart
@@ -765,6 +765,16 @@
       '--dart-define=test.valueB=Value',
     ]
   );
+  await _runWebDebugTest('lib/sound_mode.dart', additionalArguments: <String>[
+    '--enable-experiment',
+    'non-nullable',
+    '--sound-null-safety',
+  ]);
+  await _runWebReleaseTest('lib/sound_mode.dart', additionalArguments: <String>[
+    '--enable-experiment',
+    'non-nullable',
+    '--sound-null-safety',
+  ]);
 }
 
 Future<void> _runWebStackTraceTest(String buildMode) async {