add testObserverSetDoesNotCrashWhenObservedIsRemovedAndDeallocatedWhileInCallback

I discovered that the “simple” and “dynamic-proxy-classes” implementation of removeObserver: causes a crash when the observer is deallocated while message delivery is running.  This test case reproduces the crash.
testObserverSetDoesNotCrashWhenObservedIsRemovedAndDeallocatedWhileInCallback verifies (differently) that the observers are deallocated

This change seems to make the test crash more reliably.
Make testObserverSetDoesNotCrashWhenObservedIsRemovedAndDeallocatedWhileInCallback pass by changing to all NULL CFSet callbacks so pendingAdditions and pendingDeletions don't try to dereference possibly-dangling pointers
fix up project