Adds a new optional `CodeActionProviderMetadata`. This is passed in`registerCodeActionProvider` and contains a list of`CodeActionKinds` that the provider may return. The list is used for deciding when to show the `refactor` and `source action` context menus. It is not used for filtering the returned code actions
Possibly helps address #45383
* 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
Extract function for the following pattern used a number of times in `ExtHostLanguageFeatures`:
```
const handle = this._nextHandle();
this._adapter.set(handle, new OutlineAdapter(this._documents, provider));
```
* Add CodeAction Type
Adds skeleton on a new CodeActionType and allows codeActionProvider to return either `Command`s or `CodeAction`s
Move proposed CodeAction API to proposed and try using it in TS
Split CodeAction into quickfix and refactoring classes
Update proposed interface
Update for new API
Adding basic docs
* Support workspace edits and text edits in codeactions
* Remove placeholders
* Resolving conflicts and making PR suggested changes
* Fix quick fix test
* Revert change to only use `CodeAction` instead of `CodeAction | Command` in modes since this will break `vscode.executeCodeActionProvider`