title: Using NSKeyValueObservation to observe value in UserDefaults
body: <p>I would like to use the block-based KVO from Swift 4 to observe changes to a value in <code>UserDefaults</code>. I am able to do this for observing a key path for <code>WKWebView</code>'s <code>estimatedProgress</code> but haven't been successful with <code>UserDefaults</code> because the provided key path isn't what it's looking for. Providing just a String isn't enough (Generic parameter 'Value' could not be inferred), prefixing it with <code>\</code> isn't enough (Type of expression is ambiguous without more context). What's the correct way to create the <code>KeyPath</code> to observe a value in <code>UserDefaults</code>?</p>
  
  <pre><code>observerToken = UserDefaults.standard.observe("myvalue") { (object, change) in
      //...
  }
  </code></pre>