feat: add generate_mut_trait_impl assist

Generate proper `index_mut` method body refer to `index` method body may impossible due to the unpredicable case (#15581).
Here just leave the `index_mut` method body be same as `index` method body, user can modify it manually to meet their need.
fix: Fix docs path for derive macros
Fixes#15831.
Not sure about `attr`, I don't think those are documented anyway. And many macros don't work because we pick the wrong path.
They've been deprecated for four years.
This commit includes the following changes.
- It eliminates the `rustc_plugin_impl` crate.
- It changes the language used for lints in
`compiler/rustc_driver_impl/src/lib.rs` and
`compiler/rustc_lint/src/context.rs`. External lints are now called
"loaded" lints, rather than "plugins" to avoid confusion with the old
plugins. This only has a tiny effect on the output of `-W help`.
- E0457 and E0498 are no longer used.
- E0463 is narrowed, now only relating to unfound crates, not plugins.
- The `plugin` feature was moved from "active" to "removed".
- It removes the entire plugins chapter from the unstable book.
- It removes quite a few tests, mostly all of those in
`tests/ui-fulldeps/plugin/`.
Closes#29597.
VSCode metadata. category:formatters
If you invoke cmd+p `Format Document` without rust-analyzer installed in the workspace, VSCode suggests you "install a formatter" which triggers a search for `category:formatters rust`. Sadly rust-analyzer extension is not suggested.
Tweak VSCode Extension Metadata so rust-analyzer shows up in 'category:formatters rust' search.
You can see the valid values for categories in the [extension manifest: field reference](https://code.visualstudio.com/api/references/extension-manifest#fields) docs.
<img width="270" alt="search2" src="5bd86497-2450-4be4-a073-e134d0616226">
<img width="432" alt="search_1" src="1ad1b375-58a1-4b37-b485-78e2a26b8342">
internal: scip: update crate to version 0.3.1.
While the git repo has been updated constantly, crates.io has only now been updated after more than a year of activity.
feat: generate descriptors for all unstable features
Most unstable features don't have their own chapter in the unstable book, so a rustc helper tool (`src/tools/unstable-book-gen`) generates shims to fill the gaps.
Run this tool to generate the full unstable-book source before parsing it.
Add command for only opening external docs and attempt to fix vscode-remote issue
opening URI in a remote env causes vscode to ask the OS to handle `vscode-remote` URIs as there is no handler registered for such a scheme. This attempts to instruct vscode to handle those.
This is untested, as I can't figure out how to open a debug session on WSL rn.
String literals diagnose
Continues the work from #15744 to add diagnosis errors to Str, ByteStr, and CStr literal kinds.
Also replaces `unescape_char` for `unescape_byte` to use the correct method for Byte literals.