Unit test for -concat sometimes missing later signals
Mark RACSignal ** as __strong to fix -concat
Failing unit test for -concat disposal
Fix -concat disposal and stop O(N) disposable growth
Merge pull request #565 from ReactiveCocoa/fix-concat

Fix -concat dropping signals and not always disposing correctly
Merge branch 'master' into racobservablepropertysubject-custom-keypath-handling
Revert "Refactored the deeply nested branches into early returns."

This reverts commit f534847d3c10276c51e1a1061f89b2b29ad1e0aa.

Conflicts:
	ReactiveCocoaFramework/ReactiveCocoa/RACObservablePropertySubject.m
Break out RACObservablePropertyObserving into it's own file.
Cleaned up imports.
Refactored RACObservablePropertySubjectSpec to use RACTestObject.
Added nil observer test.
Changed -rac_addObserver:forKeyPath:options:block: to accept nil observer.
Merge branch 'nil-observer' into racobservablepropertysubject-custom-keypath-handling
Since observer can be nil, synchronize on willChangeBlock or didChangeBlock instead.
Refactored early returns again.
Relaxed the deallocation test a bit to account for chain deallocations.
Removed use of NSKeyValueObservingOptionInitial.
Added back the assert on stack depth.