Clean up docs of RACObservablePropertyObserving.
Rename childDisposable to firstComponentDisposable and change keyPathComponentsCount to keyPathHasOneComponent.
Added an explicit serialization lock instead of using @synchronized on one of the blocks.
Moved stuff around to avoid an unnecessary call to -valueForKey:.
Remove calls to -rac_addDeallocDisposable:.
Add some missing synchronization because objects being thread-safe doesn't imply references to them are as well.