title: KVO not working: message was received but not handled
body: <p>I got the following error when playing around with KVO. Does it only work with subclasses of UIViewController?</p>
  
  <pre><code>Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '&lt;sort.object: 0x100a074e0&gt;: An -observeValueForKeyPath:ofObject:change:context: message was received but not handled.
  Key path: name
  Observed object: &lt;sort.User: 0x100a06bb0&gt;
  Change: {
      kind = 1;
      new = Test;
  }
  </code></pre>
  
  <p>The code are as below:</p>
  
  <pre><code>import Foundation
  
  class User: NSObject {
      dynamic var name: String?
  }
  
  class object: NSObject {
      func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutableRawPointer) {
          print("Name changed")
      }
  }
  
  
  var user = User()
  var ob = object()
  user.addObserver(ob, forKeyPath: "name", options: NSKeyValueObservingOptions.new, context: nil)
  
  user.name = "Test"
  
  try user.name = "Test 2"
  user.removeObserver(ob, forKeyPath: "name")
  </code></pre>