* 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
* 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
* Add CodeActionScope
* Replace matches with contains, try using in ts extension
* Move filtering to getCodeActions
* Basic test
* Docs
* Fix tests
* Hooking up requested scope
* Add basic test for requestedScope
* Added auto apply logic
* Gate refactor provider to only compute refactorings when requested
* Making suggested renames
* Clean up code action trigger impl to use single Trrigger info object
* Rename codeActionScope file and internal CodeActionScope class
* Add quick fix base type
* Make keybinding API more similar to insertSnippet
Take args as an object instead of as an array of values
* Clean up docs
* scope -> kind
* Fixing examples to match Refactor kind