Fix(#7442): dynamic loading of codemirror language modes
Currently, the code widget does not work properly in ESM builds as it calls require() with a dynamic argument, hence the dynamic loading of language modes is broken (see #7442).
This PR fixes this by using a map of loader functions that use dynamic imports with static paths. The map is generated by the same script that creates the languages.json file.
NOTE: Ideally, we would use https://github.com/codemirror/language-data instead, which internally uses the same approach, but this requires codemirror
6.xwhich in turn is not supported byreact-codemirror2, the wrapper library that is currently used. In the long term switching to https://www.npmjs.com/package/@uiw/react-codemirror would probably make sense, but this would require a huge refactoring.