ReactiveCocoa/ReactiveCocoa — pull request #634 by kastiglione (2013-06-30 07:05:13+00:00)
Title: Prevent observer from observing its own deallocation

:warning: Not Ready To Merge :warning:

_No tests. May be more that can be done._

I ran into the problem from #631, where I had bound a command's `canExecute` status to a button's `enabled` property, like so:

```objc
RAC(self.doneButton.enabled) = RACObserve(self.processSignUpCommand.canExecute);
```

When the host controller was deallocated, the KVO wrapper recognized that the first component of the key path, `self`, was deallocated, and proceeded to attempt to assign `nil` to the button's `enabled` property.

This prevents the observer from observing on its own deallocation. An observer about to be deallocated shouldn't cause itself to receive a KVO notification triggered by its own deallocation.