Refactor RACCompoundDisposable to use CFArray

Results in a significant performance gain when lots of compound
disposables are in use (and especially nested).
Replace @onExit with try/finally to avoid blocks overhead
Pull disposable arrays out onto the stack for enumeration
Meh, we don't really need exception safety here
Optimize KVO trampoline storage
Merge branch 'master' into more-optimization
Optimize active signals set
Remove unused tearingDown property
Use cheaper synchronization for RACSignal's subscribers array
Move didSubscribe block declaration into RACSignal.m
Prefer -addDisposable over +compoundDisposableWithDisposables:
Revert "Pull disposable arrays out onto the stack for enumeration"

This reverts commit 520e54ddd8ce3bec64bf18527755b8ab5bce08c8.

Conflicts:
	ReactiveCocoaFramework/ReactiveCocoa/RACCompoundDisposable.m
Merge pull request #553 from ReactiveCocoa/more-optimization

Optimize KVO wrappers, signal lifetime, and RACCompoundDisposable
Merge branch 'master' into racobservablepropertysubject-custom-keypath-handling