title: Lazy variable with reset
body: <p>I want to create a variable of a certain type that is not null, say Foo for example.</p>
  
  <p>I then want all access to the variable to return Foo, just like a lazy delegate, however, I also want to be able to reset it.</p>
  
  <p>Something like:</p>
  
  <pre><code>var foo : String by Foo(init: {"bar"})
  
  print(foo) // prints "bar"
  foo = null // or foo.reset()
  print(foo) // prints "bar"
  </code></pre>
  
  <p>The problem I am trying to solve:
  I have an index for an adapter that I need to recreate when the adapter content changes. So on change I want to clear the index, and the next time someone tries to accessing it, I want to recreate it.</p>