Improved async and core data related helpers

Instead of a global semaphore to sync with background processes, let's
make AsyncTestHelper an object with it's own semaphore.

Added some core data helpers, so save synchronization is independent
from any other async helpers.

Dropped method swizzling in favor of regular notifications