RACObservablePropertySubject tries to update key path with nil intermediate values and fails.

If you set a value to a key path where intermediate values of the key path are nil, the set won't fail, but it won't trigger a KVO notification either, so `RACObservablePropertySubject` ends up ignoring the next one, which it shouldn't.

This adds a check and only sets the key path value if the second to last value in the key path is not nil.