Repository: intellij-rust/intellij-rust
Issue: MacroExpansionManager in misc.xml seems to have per-user settings

What steps will reproduce the issue?
Update to IntelliJ IDEA version 2019.1.1 with Scala plugin version 2019.1.7 and open a Scala project.

What is the expected result?
misc.xml should not contain per-user settings according to https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems

What happens instead?
misc.xml has this:

```xml
  <component name="MacroExpansionManager">
    <option name="directoryName" value="rtaKaNvu" />
  </component>
```


Changed files:
src/main/kotlin/org/rust/cargo/project/settings/impl/RustProjectSettingsServiceImpl.kt
src/main/kotlin/org/rust/lang/core/macros/MacroExpansionManager.kt
src/main/kotlin/org/rust/cargo/project/model/impl/CargoProjectImpl.kt

diff --git a/src/main/kotlin/org/rust/cargo/project/model/impl/CargoProjectImpl.kt b/src/main/kotlin/org/rust/cargo/project/model/impl/CargoProjectImpl.kt
index ae06a2a0f..6d270dab3 100644
--- a/src/main/kotlin/org/rust/cargo/project/model/impl/CargoProjectImpl.kt
+++ b/src/main/kotlin/org/rust/cargo/project/model/impl/CargoProjectImpl.kt
@@ -13,6 +13,8 @@ import com.intellij.openapi.application.ApplicationManager
 import com.intellij.openapi.application.runWriteAction
 import com.intellij.openapi.components.PersistentStateComponent
 import com.intellij.openapi.components.State
+import com.intellij.openapi.components.Storage
+import com.intellij.openapi.components.StoragePathMacros
 import com.intellij.openapi.module.ModuleUtilCore
 import com.intellij.openapi.progress.BackgroundTaskQueue
 import com.intellij.openapi.project.Project
@@ -57,7 +59,10 @@ import java.util.concurrent.TimeUnit
 import java.util.concurrent.atomic.AtomicReference
 
 
-@State(name = "CargoProjects")
+@State(name = "CargoProjects", storages = [
+    Storage(StoragePathMacros.WORKSPACE_FILE),
+    Storage("misc.xml", deprecated = true)
+])
 class CargoProjectsServiceImpl(
     val project: Project
 ) : CargoProjectsService, PersistentStateComponent<Element> {
diff --git a/src/main/kotlin/org/rust/cargo/project/settings/impl/RustProjectSettingsServiceImpl.kt b/src/main/kotlin/org/rust/cargo/project/settings/impl/RustProjectSettingsServiceImpl.kt
index 7891dbe6c..eabbdbc50 100644
--- a/src/main/kotlin/org/rust/cargo/project/settings/impl/RustProjectSettingsServiceImpl.kt
+++ b/src/main/kotlin/org/rust/cargo/project/settings/impl/RustProjectSettingsServiceImpl.kt
@@ -7,6 +7,8 @@ package org.rust.cargo.project.settings.impl
 
 import com.intellij.configurationStore.serializeObjectInto
 import com.intellij.openapi.components.PersistentStateComponent
+import com.intellij.openapi.components.Storage
+import com.intellij.openapi.components.StoragePathMacros
 import com.intellij.openapi.options.ShowSettingsUtil
 import com.intellij.openapi.project.Project
 import com.intellij.util.xmlb.XmlSerializer.deserializeInto
@@ -20,7 +22,10 @@ import org.rust.cargo.toolchain.RustToolchain
 
 private const val serviceName: String = "RustProjectSettings"
 
-@com.intellij.openapi.components.State(name = serviceName)
+@com.intellij.openapi.components.State(name = serviceName, storages = [
+    Storage(StoragePathMacros.WORKSPACE_FILE),
+    Storage("misc.xml", deprecated = true)
+])
 class RustProjectSettingsServiceImpl(
     private val project: Project
 ) : PersistentStateComponent<Element>, RustProjectSettingsService {
diff --git a/src/main/kotlin/org/rust/lang/core/macros/MacroExpansionManager.kt b/src/main/kotlin/org/rust/lang/core/macros/MacroExpansionManager.kt
index 02137be49..fdb613558 100644
--- a/src/main/kotlin/org/rust/lang/core/macros/MacroExpansionManager.kt
+++ b/src/main/kotlin/org/rust/lang/core/macros/MacroExpansionManager.kt
@@ -9,9 +9,7 @@ import com.intellij.AppTopics
 import com.intellij.openapi.Disposable
 import com.intellij.openapi.application.*
 import com.intellij.openapi.application.impl.LaterInvocator
-import com.intellij.openapi.components.PersistentStateComponent
-import com.intellij.openapi.components.ProjectComponent
-import com.intellij.openapi.components.State
+import com.intellij.openapi.components.*
 import com.intellij.openapi.diagnostic.Logger
 import com.intellij.openapi.editor.Document
 import com.intellij.openapi.fileEditor.FileDocumentManager
@@ -97,7 +95,10 @@ private const val RUST_EXPANDED_MACROS = "rust_expanded_macros"
 fun getBaseMacroExpansionDir(): Path =
     Paths.get(PathManager.getSystemPath()).resolve(RUST_EXPANDED_MACROS)
 
-@State(name = "MacroExpansionManager")
+@State(name = "MacroExpansionManager", storages = [
+    Storage(StoragePathMacros.WORKSPACE_FILE),
+    Storage("misc.xml", deprecated = true)
+])
 class MacroExpansionManagerImpl(
     val project: Project
 ) : MacroExpansionManager,