title: Views removed from a List get leaked
body: <p>The following example shows a view (<code>MyView</code>), inside a <code>List</code>. When tapped, it is removed completely. However, its memory is never released. </p>
  
  <p>This is made evident but the fact that MyView has a property of type SomeClass, and its <code>deinit</code> is never called. However, if taken outside the <code>List</code>, the view is properly disposed.</p>
  
  <p>Is this yet another bug?</p>
  
  <pre class="lang-swift prettyprint-override"><code>import SwiftUI
  
  struct ContentView : View {
      @State private var showView = true
  
      var body: some View {
          VStack {
              List {
                  if showView {
                      MyView().tapAction {
                          self.showView.toggle()
                      }
                  }
              }
          }
      }
  }
  
  struct MyView: View {
      private var myVar = SomeClass()
  
      var body: some View {
          Text("Tap me to Remove!")
      }
  }
  
  class SomeClass {
      init() { }
  
      deinit {
          print("deinit SomeClass")
      }
  }
  </code></pre>
  
  <p>In this case, however, the <code>deinit</code> is called properly. The only difference is here I do not use <code>List</code>.</p>
  
  <pre class="lang-swift prettyprint-override"><code>struct ContentView : View {
      @State private var showView = true
  
      var body: some View {
          VStack {
              if showView {
                  MyView().tapAction {
                      self.showView.toggle()
                  }
              }
          }
      }
  }
  </code></pre>