Repository: intellij-rust/intellij-rust
Issue: Project model is not updated after changes in toolchain-related settings

<!--
Hello and thank you for the issue!
If you would like to report a bug, we have added some points below that you can fill out.
Feel free to remove all the irrelevant text to request a new feature.
-->

## Environment

* **IntelliJ Rust plugin version:** 0.4.178.4836-222-nightly
* **Rust toolchain version:** 1.63.0 (4b91a6ea7 2022-08-08) x86_64-apple-darwin
* **IDE name and version:** IntelliJ IDEA 2022.2 Ultimate Edition (IU-222.3345.118)
* **Operating system:** macOS 12.3.1
* **Macro expansion engine:** new
* **Name resolution engine:** new
* **Additional experimental features:** org.rust.cargo.features.settings.gutter, org.rust.cargo.emulate.terminal, org.rust.cargo.evaluate.build.scripts, org.rust.macros.proc

## Problem description
If you change any setting that affects the project model, the plugin silently marks the project model as not up-to-date. But it's invisible for users and may lead to weird/confusing consequences. For example, you may expect that addition and removing dependency in `Cargo.toml` won't change anything, but the notification about changes in project structure may still be present

https://user-images.githubusercontent.com/2539310/188170053-d0a52143-354d-4922-b692-1f63764937ed.mov

A possible solution is to reload the project model on each change in settings if they affect the project model. Currently, it's only toolchain settings and stdlib location

## Steps to reproduce
- install any additional toolchain (for example, via `brew`)
- ensure `Any change` option is **not** selected in `Preferences | Build, Execution, Deployment | Build Tools` settings
- open a rust project with `rustup` toolchain and ensure that the project model is updated
- change toolchain in `Preferences | Languages & Frameworks | Rust` settings
- ensure nothing happened
- open `Cargo.toml`, add any dependency and remove it

<!--
Please include as much of your codebase as needed to reproduce the error.
If the relevant files are large, please provide a link to a public repository or a [Gist](https://gist.github.com/).
-->

Changed files:
src/222/main/kotlin/org/rust/cargo/project/model/impl/compatUtils.kt

diff --git a/src/222/main/kotlin/org/rust/cargo/project/model/impl/compatUtils.kt b/src/222/main/kotlin/org/rust/cargo/project/model/impl/compatUtils.kt
index 9d8860989..a124edf7e 100644
--- a/src/222/main/kotlin/org/rust/cargo/project/model/impl/compatUtils.kt
+++ b/src/222/main/kotlin/org/rust/cargo/project/model/impl/compatUtils.kt
@@ -23,7 +23,9 @@ fun registerProjectAware(project: Project, disposable: Disposable) {
         .subscribe(RustProjectSettingsService.RUST_SETTINGS_TOPIC, object : RustSettingsListener {
             override fun rustSettingsChanged(e: RustSettingsChangedEvent) {
                 if (e.affectsCargoMetadata) {
-                    AutoImportProjectTracker.getInstance(project).markDirty(cargoProjectAware.projectId)
+                    val tracker = AutoImportProjectTracker.getInstance(project)
+                    tracker.markDirty(cargoProjectAware.projectId)
+                    tracker.scheduleProjectRefresh()
                 }
             }
         })