* Webview API prototype 3
Part of #43713
Third try at refining the webview api. This pass reworks #44165. Major changes:
- Adds an `id` field to webviews. The id is provided by the extension and identifies the webview. It is used with the new event handling apis.
- Adds a new `onDidChangeActiveEditor` api. This is similar to `onDidChangeActiveTextEditor` but is also fired when you change webviews. It replaces the old `onFocus` and `onBlur` events on the webview itself
- Adds an `onDispose` event ot webviews. This is fired when a webview is closed by the user
- Perist webview state when the editor group changes. This is enabled for all webviews, not just those with keep alive.
* Throw error when trying to access disposed webview
* Improving webview documentation
* Clean up dispose management
* Throw if we receive a bad handle
* Move more event handling to input
* Simplify input updating
* Remove extra container property
* Fixing md security alert button
* Remove extra update container call
* Restore syncing of preview to active editor
* Fixing posting to webview
* Debounce preview updates
* Remove previewUri
* Enable direct window.postMessage instead of window.parent.postMessage
* Fixing scroll position not preserved when updating previews
* Revert parent.postMessage change.
Old behavior was correct
* Properly hide webview container on tab switch
* Make sure we only handle scroll events for the correct document
* Don't try setting negative scroll
* Revert vs code whitespace change
Fixes#44039
Add a new option that lets extensions override which root folders a webview can load local resources from. Defaults to allowing any resource in the workspace
* Webview api
* Cleaning up markdown webview
* Hooking up dispose
* Fix some merge errors
* Use custom context key to show markdown title bar contributions
* Add basic on focus and on blur events
* Fixing find widget in webview
* Hookup _isDisposed
* Use new extension resource scheme to load markdown extension resources
* Documenting keep alive
Move OnPreviewStyleLoadErrorCommand to own file
Move commands.ts into new commands directory
Moving show preview commands to own file
Add missing import for tests
Use export from to export commands
Extract tryRevealLine to own method
Extract tryOpen to method
Extract moveCursorToPosition to own file
Extract didClick command to own file
Move RevealLineCommand to own file
Move ShowPreviewSecuritySelectorCommand command to own file
Move refreshPreviewCommand to own file
Move show source command to own file