title: NSManagedObject.setValue(value: AnyObject?, forKey key: String) causes error in Swift 2.0
body: <p>I have this piece of code which was working ok in XCode6 (Swift 1.2) but not with the Swift 2:</p>
  
  <pre><code>class func findOrCreate&lt;T: NSManagedObject&gt;(type: T.Type, attribute: String, value: AnyObject?) -&gt; T {
      if let object = T.MR_findFirstByAttribute(attribute, withValue: value) as? T {
          return object
      } else {
          let object = T.MR_createEntity() as! T
          if let value:AnyObject = value {
              object.setValue(value, forKey: attribute)
          }
          return object
      }
  }
  </code></pre>
  
  <p>Error shows on the line containing <em>object.setValue</em> with the message:</p>
  
  <p><strong>Ambiguous use of 'setValue(_:forKey:)'</strong></p>
  
  <p>I think it does not recognise object to be of NSManagedObject type but I'm not 100% sure, any clue why this happens much appreciated.</p>