Use the CFSet methods to remove values rather than the NSSet methods inside checkout.
Ensure that RHRecord instances are removed from their respective weak caches on the _addressBook thread.
We do this to guarantee that they are removed from the weak cache before some other thread else ends up with an already being deallocated object.
Unfortunately this only currently works when RHRecord is build with ARC disabled because the logic has to be placed inside release.