* Better notebook markup renderer api
For #121256
- Use js modules for notebook output renderers
- Rename apis from `markdown` to `markup`
- Use imports and exports for apis instead of globals for apis
- Use esbuild instead of webpack so we can emit js modules
- Clearly split top level markup renderes from renderers that extend other renderers
* Use constant instead of comment for replacement
* Render markdown preview cells inside a shadow dom
Fixes#119971
This moves all markdown previews into shadow doms. This lets us prevent styles from outside the preview leak into the preview, and also prevents styles from the preview leak out into the rest of the notebook
* Use composedPath for handling events in webviews
This lets us handle clicks triggered inside of a shadow dom